我有三个控制器,每个控制器在导航栏上都有不同的风格
控制器A:白色导航栏,透明状态栏(以便内容可见),通过导航栏上的自定义bg图像实现
控制器B:白色导航栏,白色状态栏,通过导航栏上的自定义bg图像实现
控制器C:隐藏导航栏,只有带按钮的自定义透明视图
标准用例是A> B> C,然后再返回
问题是只有一个导航栏对象,当我更新它的可见性或背景图像时,它适用于所有视图控制器 . 因此,当我从A转到B时,状态栏在转换期间变为白色 . 当我从B转到C时,即使B仍然可见(或者在它消失之后,导航栏也会消失,具体取决于我是否在viewWillAppear或viewDidAppear中更改了导航栏) .
我的目标是为所有控制器设置“独立”导航栏样式,以便在转换过程中不会改变,但是新控制器会使用它自己的导航栏滑入,而旧控制器则不会触及导航栏样式 .
如果没有使用我自己的UINavigationController实现,这样的事情是否可能?
1 回答
是的,这是可能的 . UINavigationController具有
navigationBarHidden
属性 . 将其设置为true可隐藏控制器A,B和C的导航控制器 .然后向每个子视图控制器(A,B和C)添加导航栏或按钮,以便使用视图控制器进行推/弹 .
当点击B和C的后退按钮时,您可能需要调用
popViewControllerAnimated
.Structure: