UINavigationBar改变了UIBarStyle,甚至认为UIBarStyle在UIAppearance中有所不同
Posted
技术标签:
【中文标题】UINavigationBar改变了UIBarStyle,甚至认为UIBarStyle在UIAppearance中有所不同【英文标题】:UINavigationBar changes UIBarStyle, even thought the UIBarStyle is different inUIAppearance 【发布时间】:2013-11-02 18:46:24 【问题描述】:我喜欢更改TabBarControllers
NavigationController
的UINavigationBar
,它工作正常,但是当我通过点击选项卡更改视图时,UINavigationBar
将其样式更改为UIBarStyleBlackTranslucent
,但不是UITabBar
。在我实现主题之前,NavigationBar 样式也是黑色半透明,但我删除了所有代码并更改了 StoryBoard 中的颜色。
我不知道我的应用为什么会这样。我在 AppDelegate.m 中有我的代码,所以它应该是系统范围的。
这是我的白色主题代码:
-(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];
黑色主题:
-(void)blackTheme
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
[[UITabBar appearance] setBarStyle:UIBarStyleBlack];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
希望有人知道答案。
【问题讨论】:
【参考方案1】:如果您单击顶部的项目,请转到您的目标->常规,然后在状态栏样式下拉框中为您的导航栏选择相应的样式。
另一种解决方案:定义特定的导航控制器属性并使用 self.navigationcontroller.navigationbar 代替 [UINavigationBar 外观]
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
【讨论】:
以上是关于UINavigationBar改变了UIBarStyle,甚至认为UIBarStyle在UIAppearance中有所不同的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationBar 中的 UISearchBar 在旋转方向时改变宽度
UINavigationController改变UINavigationBar导航条标题颜色跟字体
popViewControllerAnimated 改变 UINavigationBar 的 UIColor
UINavigationBar 的标题不会随着 push segue 的转换而改变