【问题标题】:View appearing below status bar initially最初出现在状态栏下方的视图
【发布时间】:2015-10-08 09:56:28
【问题描述】:
我的应用中有以下层次结构:
UITabBarController (rootviewcontroller) --> 自定义UINavigationController --> View1 (UIViewController)
更新到iOS9后,最初在应用启动时,View 1 会移动到状态栏下方一点,如下所示:
另外,viewwillappear 默认不会被调用。自定义导航栏委托方法在自定义类中使用,在任何地方都没有使用其他委托。我也使用RXCustomTabar 作为根视图。救命!
【问题讨论】:
标签:
ios
uinavigationcontroller
ios9
uistatusbar
【解决方案1】:
按照以下步骤进行
1.在你的项目中 - info.plist
Status bar is initially hidden Boolean YES
2.之后你需要做的是在AppDelegate.m的didFinishLaunchingWithOptions
[UIApplication sharedApplication].statusBarHidden=NO;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
[application setStatusBarHidden:NO];
self.window.clipsToBounds=YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
else
{
self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
[application setStatusBarHidden:NO];
self.window.clipsToBounds=YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
如果按照上面的步骤,就不需要在每个视图控制器的viewWillAppear中编写代码了。