必须切换“[[UINavigationBar appearance] setBarTintColor:[UIColor darkGrayColor]];”的视图上班

时间:2014-03-17 09:12:09

标签: ios uiappearance bartintcolor

我在按钮单击时将条形色调颜色设置为不同,但您必须切换视图才能使以下方法生效。我不知道为什么不是。

[[UINavigationBar appearance] setBarTintColor:[UIColor darkGrayColor]];

谢谢:D

2 个答案:

答案 0 :(得分:1)

  

错误原因:

     

[[UINavigationBar appearance] setBarTintColor:[UIColor randomColor]];无法正常工作,因为UIViewController已经存在   初始化!!!

解决方案:

(1)UIAppearance用户在AppDelegate中设置全局效果didFinishLaunch函数。

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    [[UINavigationBar appearance] setBarTintColor: [UIColor redColor]];
    return YES;
}

(2)关于初始化的UIViewController,你应该使用self.navigationController.navigationBar设置颜色也可以对应用程序生命周期产生影响。

[self.navigationController.navigationBar setBarTintColor:[UIColor randomColor]];

答案 1 :(得分:0)

UINavigationBar *navBar=self.navigationController.navigationBar;
[navBar setBarTintColor:[UIColor darkGrayColor]];

试试这个

这是我测试它的方式。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UINavigationBar *navBar=self.navigationController.navigationBar;
    [navBar setBarTintColor:[UIColor darkGrayColor]];
}

由于我屏幕上没有任何按钮,我只更改了一个表委托功能。