的UITabBarController与相同视图控制器在不同的标签
问题描述:
方案:的UITabBarController与相同视图控制器在不同的标签
我们在应用程序标签栏控制器。
只有一个视图控制器对于StatusBar具有不同的颜色样式,我们称之为视图控制器VC1。
所以我添加了逻辑VC1,viewWillAppear设置想要的StatusBar Color,viewWillDisappear重置默认的StatusBar Color。
问题: 大部分的时间,不同的标签有不同的视图控制器,这是没有状态栏颜色变化的问题。
但在一个情况下,我将有两个选项卡显示VC1,在这种情况下,当我切换标签,viewWillAppear中接到电话第一,这意味着复位状态栏风格后来接到电话,所以在切换选项卡后,StatusBar Color是错误的。
有没有办法解决这个问题?在这种情况下,视图控制器的生命周期似乎是错误的。
答
看UITabBarControllerDelegate
。使用它,您可以根据选择哪个选项卡来执行操作 - 例如更改StatsBar的颜色 - 而不是在VC内部执行操作。
当您想要 增强标签栏的行为时,使用UITabBarControllerDelegate协议。特别是,您可以将其用于 ,以确定是应该选择特定选项卡,还是在选择选项卡后执行操作 ,或者在 用户自定义选项卡的顺序之前或之后执行操作。
裁判:https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate
我明白你的想法,它应该工作,但我必须做出特定的逻辑上,因为风格视图控制器不是简单地依赖于唯一标签。 –