IOS對於導航欄的顯示和隱藏不統一的解決方法
最近在搞的專案,在主介面是不需要導航欄的,但其他子頁面都需要導航欄。導致導航欄的顯示和隱藏不統一。
為了最優化程式碼,我肯定考慮在主介面進行控制。即將顯示時候,顯示導航欄,在即將消失時候隱藏導航欄。這樣操作確實方便,但不完美。
如果主介面有彈框,那麼也會導致導航欄顯示出來了。這不是你想要的結果。
這裡,可以在即將消失的時候多加一層判斷,判斷當前顯示的頁面是否為主介面。為主介面就不顯示導航欄。程式碼如下:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
//不是所有情況都開啟導航條的
UIViewController *vc = [[UIApplication sharedApplication] topViewController];
if(![vc isKindOfClass:[self class]])
self.navigationController.navigationBarHidden = NO;
else
self.navigationController.navigationBarHidden = YES;
}
//獲取最上層的controller
- (UIViewController *)topViewController
{
UIWindow* window = self.keyWindow;
UIViewController* vc = window.rootViewController;
while (1) {
if ([vc isKindOfClass:[UITabBarController class]]) {
vc = ((UITabBarController*)vc).selectedViewController;
}
if ([vc isKindOfClass:[UINavigationController class]]) {
vc = ((UINavigationController*)vc).visibleViewController;
}
if (vc.presentedViewController) {
vc = vc.presentedViewController;
}else{
break;
}
}
return vc;
}
相關文章
- jQuery側邊欄隱藏和顯示導航jQuery
- iOS 解決導航欄隱藏,顯示,頁面跳轉閃一下的問題iOS
- 滾動cell 顯示隱藏導航欄
- Android 顯示、隱藏狀態列和導航欄Android
- iOS隱藏導航欄的返回按鈕iOS
- iOS隱藏導航欄正確做法iOS
- ElementUI側邊欄導航選單隱藏顯示問題UI
- App之上下滑動UIScrollview隱藏或者顯示導航欄APPUIView
- javascript隱藏和顯示div的方法JavaScript
- iOS導航欄標題錯亂的解決方法iOS
- JavaScript側邊欄顯示和隱藏JavaScript
- UIView顯示時遮擋導航欄的方法UIView
- echarts圖由於容器隱藏導致圖表不顯示問題解決辦法Echarts
- iOS 隱藏&顯示tabBariOStabBar
- view的隱藏和顯示View
- 直播app系統原始碼,底部彈框顯示,底部導航隱藏APP原始碼
- 區塊的顯示和隱藏
- Mac顯示/不顯示隱藏檔案教程!Mac
- Mac下顯示和隱藏隱藏檔案的命令Mac
- MAC如何顯示隱藏檔案和隱藏隱藏檔案的命令Mac
- CSS 導航欄元素居中顯示CSS
- steam隱藏的遊戲怎麼顯示出來 steam隱藏顯示遊戲方法介紹遊戲
- OSX中隱藏和顯示[隱藏檔案]的命令列命令列
- MacOS X隱藏和顯示隱藏檔案Mac
- Mac顯示和隱藏“隱藏檔案”命令Mac
- iOS 導航欄的控制iOS
- jQuery 效果 – 隱藏和顯示jQuery
- 直播系統平臺原始碼隱藏虛擬導航欄,禁止下拉通知欄,禁止上滑出虛擬導航欄原始碼
- Ubuntu 20.04 自動隱藏左側導航欄Ubuntu
- 不能顯示隱藏檔案的終極方法
- iOS系統中導航欄的轉場解決方案與最佳實踐iOS
- Element ui的Table元件的列的顯示於隱藏UI元件
- mac顯示隱藏檔案,取消顯示隱藏檔案Mac
- iOS 一種新的修改導航欄樣式的方法(支援iOS10).iOS
- 小程式底部導航tabBar不顯示tabBar
- JavaScript 點選一個按鈕 div的隱藏和顯示JavaScript
- win7顯示隱藏資料夾的方法Win7
- win10怎麼顯示隱藏資料夾 win10顯示隱藏資料夾的方法Win10