問題列表
1.childViewControllerForStatusBarStyle不執(zhí)行
2.preferredStatusBarStyle不執(zhí)行
3.IOS7以上导街,修改狀態(tài)欄無效
直接解決問題:
1.info.plist中設置View controller-based status bar appearance 為 yes
2.分析自己視圖層級慎冤。如果當前的viewController的父容器(一般為navigationController)的navibar 設置hidden為yes時:
UITabbarViewContrller.m
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.selectedViewController;
}
UINavigationController.m
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
UIViewContrller.m
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
ps:一般層級為上述結構坡慌,還有一些特別的結構,但是總結一下非春,頂級容器就是keywindow的rootViewController梯醒,如果這方面有疑問可以留言討論麦箍。
3.當viewController的navigationController的naviBar的hidden不為yes的時候:
UINavigationController.m
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
UIViewContrller.m
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
即可。