UITabBarController在不同的选项卡中具有相同的ViewController

时间:2017-08-03 15:00:30

标签: ios uitabbarcontroller

方案

  1. 我们在应用中有一个标签栏控制器。

  2. 只有一个视图控制器具有不同的StatusBar颜色样式,让我们调用此视图控制器 VC1

  3. 所以我在 VC1 中添加了逻辑,viewWillAppear设置了想要的StatusBar Color,viewWillDisappear重置了默认的StatusBar Color。

  4. 问题: 大多数情况下,不同的选项卡具有不同的视图控制器,这不是状态栏颜色更改的问题。

    但在一个案例中,我将在两个标签中显示VC1,在这种情况下,当我切换标签时, viewWillAppear 被称为第一个,这意味着重置StatusBar样式被称为稍后,因此在切换选项卡后,StatusBar颜色是错误的。

    有没有办法解决这个问题?在这种情况下,视图控制器生命周期似乎是错误的。

1 个答案:

答案 0 :(得分:0)

看看UITabBarControllerDelegate。使用它,您可以根据选择的选项卡执行操作 - 例如更改StatsBar的颜色 - 而不是在VC中执行此操作。

  

您可以根据需要使用UITabBarControllerDelegate协议   增加标签栏的行为。特别是,你可以使用它   确定是否应选择特定选项卡以执行操作   选择选项卡后,或在执行操作之前或之后执行操作   用户自定义选项卡的顺序。

参考:https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate