最近,本人遇到了一个奇怪的问题,对于一个UINavigationController下页面的导航栏,死活改变不了titleView相关颜色属性。无论是setTitleTextAttributes还是直接设置titleView代替,都不能更改成功。但是导航栏背景颜色确可以更改成功,说明部分代码有起作用。
下图为我的代码的层级结构。
根据情况,找寻了半天,最终发现其原因如下:
只有在push
进导航器的vc
或者是作为导航器rootViewController
的vc
才能够修改titleView
.由于tabbar
继承于UIViewController
,且为导航器的rootViewController
,所以如果要修改titleView
只能够在tabbarView
中去实现,在tabbar
里面的vc
去设置是不会出现效果的.
而我代码中用的是
[nav addChildViewController:VC];
以至于无论如何更改titleView相关属性,都无法生效。
最后,将代码修改为
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:VC];
至此,titleView相关属性才正常工作。
特此记录一下,方便以后发现问题。