我的AppDelegate中有一个UINavigationController,它有一个带有UITableView的RootViewController。启动时,状态栏会将其颜色更改为导航栏的颜色。当我将导航栏上色为橙色时,这就是状态栏的样子:
似乎我的导航栏稍微向上移动了一下。导航控制器似乎无法识别状态栏。我该如何解决这个问题?
我在我的应用程序中唯一拥有的是AppDelegate和一个空的RootViewController。我的application:didFinishLaunchingWithOptions
是:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[navigationController.navigationBar setTintColor:[UIColor orangeColor]];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
return YES;
我的RootViewController的IB文件只有一个空视图。
没什么不寻常的。我对iOS很有经验,这就是我每次都这样做的方式。我不知道这次有什么不同。
有人可以告诉我吗?感谢
答案 0 :(得分:6)
将状态栏样式设置为UIStatusBarStyleBlackOpaque
,你应该得到一个坚固的黑条。
为此,请在应用程序的实例上使用setStatusBarStyle:animated:
:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque
animated:NO];
答案 1 :(得分:4)
在iOS 6.0中,状态栏会更改颜色以匹配导航栏(如果有)。这是预期的行为。
答案 2 :(得分:2)
添加此代码:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
这会使状态栏再次变黑。
您应该在更改导航栏的颜色后添加。