2013-11-21 63 views
0

我是新来的Objective-C,今天我试图改变我的导航栏的颜色,这一点也适用此代码:如何更改导航栏的背景色的iOS 7

appDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0xf4f4f4)]; 

    return YES; 
} 

现在我尝试更改特定的ViewController导航栏,这是行不通的。

ViewController2.m:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x363636)]; 
    self.navigationController.navigationBar.translucent = NO; 
} 

当我进入这个ViewContoller他的导航颜色为f4f4f4当我去其他视图控制器,回来它改变了颜色363636

为什么这不起作用?当您使用

[UINavigationBar appearance] 

它改变了所有的导航栏的 有人可以给我讲解一下..

(对不起我的英语,谢谢。)

+0

请“接受”点击旁边的每个答案的勾号标记的最有用的答案。 – Neeku

回答

15

。在您的视图控制器,只是做导航栏

[self.navigationBar setBarTintColor:UIColorFromRGB(0x363636)]; 
+0

[self.navigationController.navigationBar setTintColor:UIColorFromRGB(0x363636)]; 这不起作用。 – user3002217

+0

它不是setTintColor,但是setBarTintColor是导航条 – Nate

0

使用tintcolor属性来改变颜色

2

您可以实现什么但业视图控制器的​​方法说。但是,如果您正在使用故事板,则还可以选择navigation item并从File inspector更改色调颜色,而无需编码。

enter image description here

+0

当我选择NavigationItem时,故事板中没有色调颜色。 – user3002217

+0

对不起,这是我的不好。它在'File Inspector'中。但它会在全局中更改色调颜色。我会编辑我的答案,指出正确的检查员。我还发现了下面的文章,它有很好的解释定制'导航栏'和'状态栏';您可能会发现它很有用: http://www.appcoda.com/customize-navigation-status-bar-ios-7/ – Neeku

0

,你可以尝试一下,我在我的AppDelegate导航栏的颜色改变,因此所有的应用程序具有相同的颜色,但我必须要改变导航栏的颜色在一个单一的视图控制器,所以我做它:

在AppDelegate中

let color = UIColor(red:0.24, green:0.72, blue:0.28, alpha:1.0) 
    UINavigationBar.appearance().tintColor = UIColor.whiteColor() 
    UINavigationBar.appearance().barTintColor = color 

并且在viewDidLoad中视图控制器

我有这样的:

self.navigationController?.navigationBar.barTintColor = UIColor.blueColor() 
viewWillDissappear

这样的:

super.viewWillDisappear(animated) 

    let color = UIColor(red:0.24, green:0.72, blue:0.28, alpha:1.0) 
    self.navigationController?.navigationBar.barTintColor = color 

它的导航栏颜色返回到相同颜色的

0

在iOS设备10可以使用barStyle这样的:

对于白条颜色:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 

而对于黑色条形颜色:

self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 

BarStyle需要viewDidLoad中设置正常的动画作品:)