iOS - 修改狀態欄和導航欄注意事項

當修改導航欄、狀態欄的時候,一定要慎重,因爲這個可能會影響所有頁面的內容。

基本的修改有以下兩個步驟:

1、在 viewWillAppear修改,記錄下修改前的狀態

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

2、在viewWillDisappear恢復 ,確保不影響其他界面,記住這裏的恢復是進入這個頁面之前的狀態

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

導航欄

//隱藏導航欄
[self.navigationController setNavigationBarHidden:NO animated:YES];

//獲取導航欄的狀態
self.navigationController.navigationBarHidden 

//防止視圖延伸到導航欄(狀態欄)下面去
self.edgesForExtendedLayout = UIRectEdgeNone;

狀態欄

//修改單個頁面的狀態欄

- (void)viewDidLoad {
    [super viewDidLoad];
    [self prefersStatusBarHidden];
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}

- (BOOL)prefersStatusBarHidden
{
    return YES;//隱藏爲YES,顯示爲NO
}

//修改所有頁面的狀態欄,不需要寫代碼
//在info.plist 中添加:
//Status bar is initially hidden   (value:YES)
//View controller-based status bar appearance   (value:NO)

參考鏈接:
1、滑動返回中導航欄的問題
2、iOS中設置導航欄標題的字體顏色和大小
3、UIViewController的self.view佈局位置問題

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