優雅解決iOS導航欄跳轉或返回時不流暢,卡白條問題。

在平時的開發過程中我們經常會遇到一些視圖需要顯示導航欄,一些視圖不需要顯示導航欄,但當視圖界面多了以後,管理起來就相當麻煩,設置不好的情況下,就會出現有時該顯示的不顯示,該隱藏的不隱藏,或者跳轉時動畫錯位不流暢,今天介紹一種既設置方便,又跳轉流暢的方式。

首先創建程序內所有視圖控制器的父視圖 BaseViewController

在父視圖的.h文件內聲明參數
/// 是否顯示導航欄
@property (nonatomic, assign) BOOL isShowNav;

在父視圖的.m文件內實現方法
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    
    if (self.isShowNav == NO) {
        [self.navigationController setNavigationBarHidden:YES animated:animated];
    } else {
        [self.navigationController setNavigationBarHidden:NO animated:animated];
    }
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.isShowNav = YES;


}

讓程序內所有界面控制器繼承自此父視圖,如果不需要隱藏導航,就什麼都不需要操作,如果需要隱藏導航,只需要在viewDidLoad方法內設置self.isShowNav = NO即可,原理是viewDidLoad方法先於viewWillAppear方法執行,在viewDidLoad設置參數,可以保證設置導航欄是否顯示的方法只被執行一次。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章