UINavigationBar改变了UIBarStyle,甚至认为UIBarStyle在UIAppearance中是不同的

时间:2013-11-02 18:46:25

标签: ios uinavigationbar uitabbar uiappearance

我想更改UINavigationBar TabBarControllers的{​​{1}},它运行正常,但当我通过点击标签更改视图时,NavigationController会更改其样式至UINavigationBar,但不是UIBarStyleBlackTranslucent。在我实现主题之前,NavigationBar样式也是Black Translucent,但我删除了所有代码并更改了StoryBoard中的颜色。

我不知道为什么我的应用会像这样。我在AppDelegate.m中有我的代码,所以它应该是系统范围的。

这是我的白色主题代码:

UITabBar

黑色主题:

-(void)whiteTheme {

    UIColor *defaultColor = [UIColor colorWithRed:(21/255.0) green:(121/255.0) blue:(251/255.0) alpha:1];

    [[UITabBar appearance] setTintColor:defaultColor];
    [[UITabBar appearance] setBarStyle:UIBarStyleDefault];
    [[UINavigationBar appearance] setTintColor:defaultColor];
    [[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];

}

我希望有人知道答案。

1 个答案:

答案 0 :(得分:0)

如果您单击顶部的项目,请转到target-> general并在状态栏样式下拉框中为导航栏选择相应的样式。

另一个解决方案:定义一个特定的导航控制器属性并使用self.navigationcontroller.navigationbar而不是[UINavigationBar外观]

[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];