方案:
我们在应用中有一个标签栏控制器。
只有一个视图控制器具有不同的StatusBar颜色样式,让我们调用此视图控制器 VC1 。
所以我在 VC1 中添加了逻辑,viewWillAppear设置了想要的StatusBar Color,viewWillDisappear重置了默认的StatusBar Color。
问题: 大多数情况下,不同的选项卡具有不同的视图控制器,这不是状态栏颜色更改的问题。
但在一个案例中,我将在两个标签中显示VC1,在这种情况下,当我切换标签时, viewWillAppear 被称为第一个,这意味着重置StatusBar样式被称为稍后,因此在切换选项卡后,StatusBar颜色是错误的。
有没有办法解决这个问题?在这种情况下,视图控制器生命周期似乎是错误的。
答案 0 :(得分:0)
看看UITabBarControllerDelegate
。使用它,您可以根据选择的选项卡执行操作 - 例如更改StatsBar的颜色 - 而不是在VC中执行此操作。
您可以根据需要使用UITabBarControllerDelegate协议 增加标签栏的行为。特别是,你可以使用它 确定是否应选择特定选项卡以执行操作 选择选项卡后,或在执行操作之前或之后执行操作 用户自定义选项卡的顺序。
参考:https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate