启动时无法隐藏状态栏

时间:2015-12-22 10:38:36

标签: ios objective-c ios9

我正在使用horizontal页面导航构建View controller-based status bar appearance = NO应用,需要在某些页面上显示状态栏,并将其隐藏在其他页面上。我想使用淡入/淡出动画,所以我必须设置

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

并更新状态栏,如下所示:

Status bar is initially hidden = YES

在页面之间导航时,此过程非常有效,但我无法在启动时删除状态栏。

我尝试过设置:NavigationControllers viewDidLoad:

将此添加到[[UIApplication sharedApplication] setStatusBarHidden:YES]; self.statusBarHidden = YES; [self setNeedsStatusBarAppearanceUpdate];

application.statusBarHidden = YES;

将此添加到AppDelegates didFinishLaunchingWithOptions:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

将其添加到初始页面的ViewController:

View controller-based status bar appearance

检查常规 - >部署信息

中的“隐藏状态栏”选项

在链接的storyboard元素中将“状态栏”设置为“无”

但状态栏仍然在发布时出现。如何在不更改-n

的值的情况下删除启动时的状态栏

5 个答案:

答案 0 :(得分:4)

只需勾选项目设置中的隐藏状态栏,如下所示。

  1. 项目设置 - 用于在启动应用程序时隐藏状态栏。
  2. Hide Status bar

    1. 在viewController中添加以下内容,您需要隐藏它。
    2. - (BOOL)prefersStatusBarHidden { return YES; }

      / ------ UPDATE ----- /

      1. 勾选隐藏状态栏 Without status bar

      2. 没有隐藏状态栏的勾选 With status bar

      3. / ------ Animate状态栏----- /

        在plist。

        View controller-based status bar appearance = NO
        

        然后在viewWillAppear方法中。

        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
        

答案 1 :(得分:1)

changing plist file : 

set Status bar is initially hidden = YES

add row: View controller-based status bar appearance = NO

enter image description here

答案 2 :(得分:0)

为了实现您的目标,您需要在app.plist文件中设置:

Status bar is initially hiddenYES

View controller-based status bar appearanceNO

然后在每个视图控制器中显示

[[UIApplication sharedApplication] setStatusBarHidden:NO];

隐藏

[[UIApplication sharedApplication] setStatusBarHidden:YES];

答案 3 :(得分:0)

Goto Targets-> General->部署信息:并在其下选择隐藏状态栏选项。

答案 4 :(得分:0)

原来我正在做的事情是正确的,但是有一个错误的[[UIApplication sharedApplication] setStatusBarHidden:NO];埋没在继承的代码中。我抓了它,却忽略了那条线......

(使用git grep StatusBar查找改变状态栏的git仓库中的代码行。

此外,唯一需要的代码是:

View controller-based status bar appearance = NO(在plist中)

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

状态栏需要更新的位置(通常在viewWillAppear