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布局位置问题

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