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方法中设置状态栏主题才管用。
如果做法有误,欢迎指正!