ios8 push无缝隐藏navibar和statusbar

本文介绍了一种在iOS应用中实现导航栏与状态栏显示与隐藏的方法。通过覆盖UIViewController中的三个方法(viewWillAppear、viewWillDisappear 和 viewDidAppear),可以实现在页面出现和消失时动态地隐藏或显示导航栏与状态栏。此外,还需在info.plist文件中设置Viewcontroller-based status bar appearance为NO以确保正确的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下代码效果不错:

- (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];
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
    
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
    
}

别忘了把info.plist中增加一项:View controller-based status bar appearance,并且把值设置为NO。如果设置为YES,则在controller中用回调方法去掉statusbar,但是效果好像不太好,希望各位指正啊!

- (BOOL)prefersStatusBarHidden{
    return YES;//隐藏
}
[self setNeedsStatusBarAppearanceUpdate];//刷新statusbar状态



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值