【发布时间】:2021-08-09 02:39:14
【问题描述】:
我正在开发一个带有带有四个单独标签的标签栏的应用程序。例如,我保存了一个可以在其中三个选项卡中更改/修改的数字。显示该数字的标签包含在所有四个选项卡中。但是,当我更改一个选项卡中的数字时,当我切换选项卡时,其他选项卡的标签不会更新。
我尝试在标签的视图控制器的每个 viewDidLoad() 中包含这个:
self.tabBarController?.delegate = self
然后使用:
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 2{
updateLabel()
}
}
如果我在所有 viewControllers 中执行此操作并选择选项卡,视图仍会更改,但 tabBarController 失败,因此根本不会调用函数 updateLabel()。 如果我只在First View Controller中包含代码并展开这部分:
if tabBarIndex == 2{
updateLabel()
}
为了覆盖所有选项卡,调用了类的相应函数(updateLabel()),但 Label 本身为 nil。
@IBOutlet weak var HoursLabel: UILabel!
func updateLabel(){
if HoursLabel != nil{
//code
}
}
并且标签没有更新。 有人知道如何解决这个问题吗?提前非常感谢你:)
【问题讨论】:
标签: ios swift xcode uiviewcontroller uitabbarcontroller