显示的控制器状态栏颜色不同,如何将其更改为默认值?

时间:2016-11-21 08:51:26

标签: ios objective-c swift xcode

我有一个呈现的视图控制器。但是它的状态栏颜色与导航栏颜色不同。我如何确保它们是相同的颜色?

4 个答案:

答案 0 :(得分:1)

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

确保此功能位于呈现视图控制器,并且视图控制器正在显示

答案 1 :(得分:0)

尝试以下代码,如果有帮助:

将与当前viewController相同的样式设置为viewController,如下所示:

//newViewController is your ViewController

newViewController.navigationBar.barStyle = self.navigationController.navigationBar.barStyle;

[self presentViewController:newViewController animated:YES completion:nil];

此外,如果您使用导航控制器并希望基于每个视图控制器控制状态栏,则您需要继承UINavigationController并实施preferredStatusBarStyle

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return self.topViewController.preferredStatusBarStyle;
}

OR

- (UIStatusBarStyle)preferredStatusBarStyle {

    return UIStatusBarStyleLightContent;
}

答案 2 :(得分:0)

//change the background of status bar

UIView *addStatusBar = [[UIView alloc] init];
addStatusBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 20);
addStatusBar.backgroundColor = bgStatus;
[self.view addSubview:addStatusBar];

//将状态栏的文字颜色从黑色更改为白色

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

答案 3 :(得分:0)

iOS 13 或更高版本我们面临着非全屏呈现的控制器。在这种情况下,您可以使用此 documentation