关于UINavigationController设置titleView颜色无效

最近,本人遇到了一个奇怪的问题,对于一个UINavigationController下页面的导航栏,死活改变不了titleView相关颜色属性。无论是setTitleTextAttributes还是直接设置titleView代替,都不能更改成功。但是导航栏背景颜色确可以更改成功,说明部分代码有起作用。

 下图为我的代码的层级结构。

根据情况,找寻了半天,最终发现其原因如下:

只有在push进导航器的vc或者是作为导航器rootViewControllervc才能够修改titleView.由于tabbar继承于UIViewController,且为导航器的rootViewController,所以如果要修改titleView只能够在tabbarView中去实现,在tabbar里面的vc去设置是不会出现效果的.

而我代码中用的是

[nav addChildViewController:VC];

以至于无论如何更改titleView相关属性,都无法生效。

最后,将代码修改为

UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:VC];

至此,titleView相关属性才正常工作。

特此记录一下,方便以后发现问题。

 


版权声明:本文为lrbtony原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。