关于设置statusBar状态栏颜色无效

在iOS应用中,遇到一个特定场景:从登录页模态弹出的指纹登录页面,直接切换rootViewController到首页时,状态栏(statusBar)的样式设置失效。尝试了多种常规方法如viewWillAppear和preferStatusBarStyle,均未奏效。最终通过在viewDidAppear中使用延迟设置statusBarStyle为UIStatusBarStyleLightContent解决了问题。这是一个关于iOS界面交互和状态栏管理的常见难题,对于开发者来说具有一定的参考价值。

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

最近,本人在于做指纹、面容ID登录时发现,从登录页直接改变window的rootViewController到首页时,一切关于statusBar 的设置正常工作。但是从登录页modal出来的指纹登录页,直接改变rootViewController到首页的时候,statusBar相关代码就不能正常工作了。

尝试过多种方法,包括在viewWillAppear方法,preferStatusBarStyle等方法,都无效果。

最终,直接在如下实现

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    });
}

做个延迟设置,才起效果。

特此记录,方便后续跟进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值