我正在开发一个由主UINavigationController驱动的应用程序。第一个视图是一个表视图,其中每个元素都会推送应用程序的不同部分。我希望每个部分都有一个与主(第一)视图不同的颜色方案,因此我希望UINavigationBar能够反映这种颜色变化。
我可以通过编程方式在多个点之一(从根视图到新视图时,从viewDidLoad,viewWillAppear或新视图的viewDidAppear)更改UINavigationController的基础UINavigationBar,但所有这些都导致了条形图瞬间改变颜色。我剩下的就是在推动动画发生之前或之后,条形图闪烁为新颜色。
我想知道的是,是否有办法让这看起来更干净。理想情况下,我希望将新的条形颜色与新视图一起推入,就好像我正在推动的视图将其自己的UINavigationBar手动添加到顶部,与UINavigationController的条形图分开。
答案 0 :(得分:0)
您可以将UINavigationBar
扩展到自定义类,然后覆盖-(void)drawRect:(CGRect)rect
方法并在其中实现颜色更新,从而实现您的目标。
不要忘记致电setNeedsDisplay
。
祝你好运。