我正在使用three20框架并尝试将顶级naivagation栏从标准更改为UIStatusBarStyleBlackOpaque。
我尝试在很多地方使用很多东西,但它似乎不起作用:/
我在我的主* appdelegate.m中尝试了,然后在另一个“page1.m”中尝试了
我在appdelegate.m中使用了以下内容
navigator.rootViewController.navigationController.view.backgroundColor = [UIColor redColor];
navigator.rootViewController.navigationController.navigationBar.backgroundColor = [UIColor redColor];
navigator.rootViewController.navigationItem.titleView.backgroundColor = [UIColor redColor];
navigator.rootViewController.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque;
navigator.rootViewController.navigationController.topViewController.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque;
navigator.rootViewController.navigationController.navigationBar.tintColor = [UIColor blackColor];
navigator.rootViewController.navigationController.navigationBar.translucent = YES;
我在page1.m
中使用了以下内容self.statusBarStyle = UIStatusBarStyleBlackOpaque; // This works! but the below doesnt
self.navigationBarStyle = UIBarStyleBlackOpaque;
self.navigationController.navigationBar.backgroundColor = [UIColor redColor];
self.navigationItem.titleView.backgroundColor = [UIColor redColor];
self.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque;
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
self.navigationController.navigationBar.translucent = YES;
我做错了什么?
由于
修改
还试过以下但仍无法正常工作
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
self.navigationBarStyle = UIBarStyleBlackOpaque;
和
navigator.rootViewController.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
navigator.rootViewController.navigationController.topViewController.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
/ EDIT2
调试没有给我我的结果,在我的.m文件中,这就是它的名字
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
self.title = @"MyTitle";
NSLog(self.navigationController.navigationBar.topItem.title);//DIDNT WORK
NSLog(self.navigationItem.title);//Worked
答案 0 :(得分:4)
self.navigationController.navigationBar.barStyle = UIStatusBarStyleBlackOpaque;
应该是:
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
//编辑:出于调试目的,您可以记录所有
*.navigationBar.topItem.title
并查看它是否打印出您当前的标题。如果没有,那就是错误的导航控制器。
答案 1 :(得分:0)
UIStatusBarStyleBlackOpaque
是设置状态栏的常量,它是屏幕顶部的黑色或灰色,显示时间,接收,电池电量等。
您可以使用
进行更改[[UIApplication sharedApplication] setStatusBarStyle:...]
对于更改导航栏,请逐个尝试列出的内容,并确保不要太早,即不要在加载和初始化视图控制器之前。
这些事情的好地方在于视图控制器-(void)viewDidLoad
答案 2 :(得分:0)
这可能是你要找的......(确保你改变了色调):
CGFloat version = [[[UIDevice currentDevice] systemVersion] floatValue];
//NSLog(@"version %f", version);
if (version <= 6.1) {
//NSLog(@"setting navbar style to black");
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackOpaque];
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
}