问题:当程序的statusbar的字体颜色被navigationbar的背景色决定的时候,比如当navigationbar有背景色,则statusbar的字体颜色为白色,当没有navigationbar的时候,
statusbar的字体颜色为黑色,但是当我们在statusbar为白色的时候,增加一个uiwindow,弹出再销毁后,发现statusbar字体颜色变为黑色,与我们设计的不符,如何解决?
其实很简单,直接上代码:
if (!_parentView) {
self.parentView = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.parentView.backgroundColor = [UIColor clearColor];
HsToastViewController *viewcontroller = [HsToastViewController new];
self.parentView.rootViewController = viewcontroller;
[self.parentView makeKeyAndVisible];
}
我们新建一个UIWindow和一个UIViewController,同时设置rootViewController为viewController.
同时在自定义的HsToastViewController中重载preferredStatusBarStype方法,返回值保持跟当前界面一致即可:
- (UIStatusBarStyle) preferredStatusBarStyle {
return [UIApplication sharedApplication].statusBarStyle;
}
顺利解决问题,记录。