2020-06-10

2020-06-10  本文已影响0人  RainGo

问题:今天我再UITabBarController中切换控制器的时候,发现未能在控制器2中改变状态栏主题色。
原因:我在控制器1中的viewwilldisappear方法中设置状态栏主题黑色,在控制器2中的viewwillappear方法中设置状态栏主题白色,主要问题在于2个控制器生命周期执行顺序与我所想不同。
解决办法:先记录下生命周期的执行顺序再说。

-[ViewController1 viewDidLoad]             - 视图控制器1 加载完成
-[ViewController1 viewWillAppear:]        - 视图控制器1即将显示
-[ViewController1 viewDidAppear:]         - 视图控制器1已经显示
-[ViewController2 viewDidLoad]              - 视图控制器2 加载完成
-[ViewController2 viewWillAppear:]         - 视图控制器2即将显示
-[ViewController1 viewWillDisappear:]    - 视图控制器1 即将消失
-[ViewController1 viewDidDisappear:]    -视图控制器1 已经消失
-[ViewController2 viewDidAppear:]         - 视图控制器2 已经显示 

以上说明要在控制器2中的viewDidAppear方法中设置状态栏主题才管用。
如果做法有误,欢迎指正!

上一篇下一篇

猜你喜欢

热点阅读