标签栏控制器索引改变?

Tab Bar Controller index changing?

我有 2 个选项卡:计算 VC 和浏览 VC;它们按此顺序排列,应用程序在 Calc VC.

上启动

在每个 VC 的视图中使用打印语句 tabbarcontroller.selectedindex 我了解到,当 Calc VC 首次出现时,它显示的索引为 0。当我点击浏览 VC,它显示索引为 1。到目前为止一切顺利。

当我点击 Calc VC 时,它的索引变为 1,而 Browse VC 变为 0。在您退出该应用程序之前,它一直如此。

为什么这是个问题?我试图通过使用 .isEnabled = false 在 Calc VC 处于活动状态时禁用 Browse VC,但由于索引

的变化,我无法那样做

viewWillAppear 触发时,selectedIndex 可能不会更改。你应该使用 viewDidAppear.

override func viewDidAppear(_ animated: Bool) {
   print(tabBarController?.selectedIndex)
}

或者您可以使用 tabBar(_:didSelect:)UITabBarDelegate

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
   print(tabBar.items?.index(of: item))
}