2016-01-17 19 views
1

我在故事板中添加了Navigation View Controller并将它连接到每个ViewController设置导航视图控制器的背景

然后我创建的类:

@interface NavigationViewController : UINavigationController 

在我有以下代码执行:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.navigationController.navigationBar.barTintColor = [UIColor colorWithHex:@"#F40116" alpha:1.0]; 
    self.navigationController.navigationBar.translucent = NO; 
} 

我试图为navigationBar改变背景红色在所有ViewControllers - 但后台仍是白色。我怎样才能让他们全部红色?

+1

是你的'colorWithHex:'正确的实现吗?因为这不是UIKit方法..另外,请尝试使用断点来确认您实际上正在实现子类。 – Hamish

+0

是colorWIthHex调用的方法吗?您不应该在NAvigationController子类中使用navigationCOntroller引用 –

回答

2

我想你正在尝试更改navigationController的navigationController的navigationBar的颜色。

试试这个:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.navigationBar.barTintColor = [UIColor colorWithHex:@"#F40116" alpha:1.0]; 
    self.navigationBar.translucent = NO; 
} 
+0

不起作用,因此导航为白色 – Abamazi

0

请试试这个:

- (void)viewDidLoad { 
[super viewDidLoad]; 

[self.navigationBar setBarTintColor:[UIColor redColor]]; 
} 

确保您UINavigationController类设置为您的自定义控制器。

enter image description here

0

争取在viewWillAppear中

所有视觉变化
- (void) viewWillAppear:(BOOL)animated{ 
[super viewWillAppear:animated]; 
    self.navigationBar.tintColor = [UIColor redColor]; 
} 

这应该为你工作。

相关问题