preferredStatusBarStyle之坑
2019-01-21 本文已影响4人
我系哆啦
我们知道UIViewController 可以直接设置preferredStatusBarStyle 来改变statusbar 上的文字的颜色。今天记录一下碰到的坑:
场景:UIViewController 的层级比较复杂,简述如下:
A--> B -> C
其中A是带UINavigationController的一个控制器;B是present出来的一个控制器,坑爹的来了,C又是B push出来的带UINavigationController的一个控制器;而且中间B是overCurrentContext类型的。A、B的状态栏需要是白色的,C是需要黑色的。
遇到的问题是:C设置的preferredStatusBarStyle并不会起作用,第一个坑是UINavigationController,这个很常见,此处不表,我遇到的坑是因为B是present出来的,这里preferredStatusBarStyle的传递被阻断了,查了白天后发现还要设置这个属性:vc.modalPresentationCapturesStatusBarAppearance = true,才能被传递下去。