如果在app delegate中设置状态栏颜色,则从单个屏幕中删除状态栏颜色

时间:2017-05-18 11:01:30

标签: ios objective-c xcode uistatusbar

我在appdelegate类中设置状态栏颜色如下所示。

- (void)transitionToViewController:(UIViewController *)viewController
                    withTransition:(UIViewAnimationOptions)transition
{
    self.window.rootViewController = viewController;

    //SET STATUS BAR COLOR
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
    {
        UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];
        view.backgroundColor= [UIColor colorWithRed:0.96 green:0.96 blue:0.96 alpha:1.0];
        [self.window.rootViewController.view addSubview:view];
    }
}

当我尝试从单个屏幕中删除它时,我失败了。它保留了我在appdelegate中设置的背景颜色,但删除了文本。我想删除背景。

这是我尝试删除状态栏的方法:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

和状态栏如下所示:

enter image description here

2 个答案:

答案 0 :(得分:0)

在info.plist中添加此基于View控制器的状态栏外观设置YES

View controller-based status bar appearance = YES

基于viewcontroller的隐藏集

在视图控制器中添加方法。

目标-C

- (BOOL)prefersStatusBarHidden {
    return YES;
}

夫特

override func prefersStatusBarHidden() -> Bool {
    return true
}

答案 1 :(得分:-1)

将以下内容添加到您的Info.plist中:

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

这也适用(iOS7 +):

override func prefersStatusBarHidden() -> Bool {
    return true
}

您还需要致电:

setNeedsStatusBarAppearanceUpdate()

在viewDidLoad()中。