兩種iOS隱藏導航欄的正確方法
簡介
在項目中經常碰到首頁頂部是無限輪播,需要靠最上面顯示.有的設置導航欄為透明等一系列的方法,這個可以借助第三方.或者干脆簡單粗暴的直接隱藏掉導航欄.可是push到下一個頁面的時候是需要導航欄的,如何做了,這里給出兩種方法.

第一種做法
-注意這里一定要用動畫的方式隱藏導航欄,這樣在使用滑動返回手勢的時候效果最好,和上面動圖一致.這樣做有一個缺點就是在切換tabBar的時候有一個導航欄向上消失的動畫.
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
第二種做法
設置self為導航控制器的代理,實現代理方法,在將要顯示控制器中設置導航欄隱藏和顯示,使用這種方式不僅完美切合滑動返回手勢,同時也解決了切換tabBar的時候,導航欄動態(tài)隱藏的問題.
@interface WLHomePageController () <UINavigationControllerDelegate>
@end
@implementation WLHomePageController
#pragma mark - lifeCycle
- (void)viewDidLoad {
[super viewDidLoad];
// 設置導航控制器的代理為self
self.navigationController.delegate = self;
}
#pragma mark - UINavigationControllerDelegate
// 將要顯示控制器
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
// 判斷要顯示的控制器是否是自己
BOOL isShowHomePage = [viewController isKindOfClass:[self class]];
[self.navigationController setNavigationBarHidden:isShowHomePage animated:YES];
}
Demo:坐飛機
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
iOS中3DTouch預覽導致TableView滑動卡頓問題解決的方法
這篇文章主要給大家介紹了關于iOS中3DTouch預覽導致TableView滑動卡頓問題解決的方法,文中通過示例代碼介紹的非常詳細,對同樣遇到的朋友們具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。2018-03-03
實例解析iOS應用多線程開發(fā)中NSthread類的用法
這篇文章主要介紹了iOS應用多線程開發(fā)中NSthread類的用法,代碼基于傳統(tǒng)的Objective-C,NSthread類需要的朋友可以參考下2016-02-02

