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;
}
相關文章
- Android 顯示、隱藏狀態列和導航欄Android
- 導航欄的隱藏問題
- ElementUI側邊欄導航選單隱藏顯示問題UI
- App之上下滑動UIScrollview隱藏或者顯示導航欄APPUIView
- javascript隱藏和顯示div的方法JavaScript
- iOS 隱藏&顯示tabBariOStabBar
- echarts圖由於容器隱藏導致圖表不顯示問題解決辦法Echarts
- 直播app系統原始碼,底部彈框顯示,底部導航隱藏APP原始碼
- 區塊的顯示和隱藏
- Mac顯示/不顯示隱藏檔案教程!Mac
- OSX中隱藏和顯示[隱藏檔案]的命令列命令列
- Ubuntu 20.04 自動隱藏左側導航欄Ubuntu
- Mac顯示和隱藏“隱藏檔案”命令Mac
- iOS系統中導航欄的轉場解決方案與最佳實踐iOS
- jQuery 效果 – 隱藏和顯示jQuery
- 直播系統平臺原始碼隱藏虛擬導航欄,禁止下拉通知欄,禁止上滑出虛擬導航欄原始碼
- 元素的隱藏和顯示(display ,visibility ,overflow)
- steam隱藏的遊戲怎麼顯示出來 steam隱藏顯示遊戲方法介紹遊戲
- 【Android Fragment】友盟統計 Fragment 頁面顯示隱藏的完美解決方案AndroidFragment
- 使用 hide和 show方法來隱藏和顯示 HTML 元素IDEHTML
- mac顯示隱藏檔案,取消顯示隱藏檔案Mac
- 解決MySQL中文亂碼和插入中文不顯示的方法MySql
- win10怎麼顯示隱藏資料夾 win10顯示隱藏資料夾的方法Win10
- MacOS 不顯示 SD 卡的 bug 解決方法Mac
- 微信小程式 iOS 中部分機型不顯示 iconfont 的解決方法微信小程式iOS
- 在 Laravel 中動態 隱藏 / 顯示 API 欄位LaravelAPI
- WordPress文章如何隱藏不顯示作者和釋出時間
- 小程式底部導航tabBar不顯示tabBar
- Mac新手教程:讓Dock自動顯示和隱藏程式塢的方法Mac
- C# 顯示、隱藏視窗對應的工作列C#
- Win10系統中日曆不顯示事件的解決方法Win10事件
- excel隱藏的部分如何顯示出來 excel裡面怎麼顯示隱藏部分Excel
- Three.js控制物體顯示與隱藏的方法JS
- 底部導航在一級頁面顯示,二級頁面不顯示
- fltk-rs 隱藏標題欄但顯示工作列圖示
- win10圖示隱藏了怎麼弄出來_win10顯示隱藏的圖示設定方法Win10
- windows10照片大圖示不顯示怎麼辦_win10系統不顯示圖示的解決方法WindowsWin10
- 藍獅主管:641480+滾動條顯示和隱藏的幾個方法