视图最初显示在状态栏下方

时间:2015-10-08 09:56:28

标签: ios uinavigationcontroller ios9 uistatusbar

我的应用中有以下层次结构: UITabBarController (rootviewcontroller) - >自定义UINavigationController --> View1 (UIViewController)

更新到iOS9后,最初在应用启动时,视图1会在状态栏下方移动一点,如下所示:

shifted below

此外,默认情况下不会调用viewwillappear。自定义导航栏委托方法在自定义类中使用,任何地方都不使用其他委托。我还使用RXCustomTabar作为rootview。救命啊!

1 个答案:

答案 0 :(得分:0)

按照以下步骤

1.在yourproject - 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中编写代码。