iOS 7中UITabBarController状态栏问题

3
是的,我看到很多关于这个问题的问题,但没有解决我的特定问题的东西。
我成功地让状态栏成为纯黑色(我想要蓝色,但我很高兴它是纯色的而不是透明的)。 我通过以下操作实现了这一点:
在MyApp-Info.plist中添加“View controller-based status bar appearance”= NO值 在AppDelegate中进行以下操作 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { [application setStatusBarStyle:UIStatusBarStyleLightContent]; self.window.clipsToBounds =YES; } 在我的viewDidLoad中执行以下操作 if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { self.edgesForExtendedLayout = UIRectEdgeNone; }
很好。
但在UITabBarController后面它仍然是透明的。我的tabbarcontroller内的视图控制器是第一屏幕截图中相同的视图控制器的子类。并且正在调用相同的viewDidLoad代码。
有什么想法吗?

尝试将navigationBarStyle设置为默认值:self.navigationController.navigationBar.barStyle = UIBarStyleDefault; - David Gölzhäuser
谢谢,大卫... 我应该在哪里做这个?在 viewDidLoad 还是在 appDelegate 中? - phil
我已经在viewWillAppear中完成了这个。 - David Gölzhäuser
2个回答

3

经过几天的尝试,我找到了一个解决方案:

1)在MyApp-info.plist中将View controller-based status bar设置为NO(如果需要,可以添加密钥)

2)在主视图控制器和详细视图控制器的viewDidLoad中加入以下代码:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [your background colour];
self.navigationController.navigationBar.tintColor = [color of the text of buttons];

3) 这将使顶部栏不透明,因此,在storyboard中,如果您有一个uitabbarcontroller,则需要在其上设置under opaque bars设置。

额外提示: 为了使导航栏与其匹配,我在AppDelegate的didFinishLaunchingWithOptions中执行以下操作:

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc]init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[same color as barTintColor above]];
[[UINavigationBar appearance] setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor whiteColor]}];

希望这能帮助到有所需要的人!


2

我遇到了类似的问题。为了解决它,您不需要禁用View controller-based status bar

UITabBarController类中,将扩展布局设置为UIRectEdgeNone

self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;

然后在其他地方设置 navigationBar.barTintColor

在子视图控制器中设置 edgesForExtendedLayout 不起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接