我一直在使用tabBarController selectedIndex来确定是否应该显示导航栏。一切工作正常的今天大多数的,但现在这行代码:UITabBarController selectedIndex滞后一下
self.tabBarController.selectedIndex
是给最后选择的索引,而不是当前选定的指数。我在viewWillAppear中运行这段代码,以确保在tabBarController中具有索引1的特定视图不会在其第一个视图上显示其导航栏。
但它报告1点击落后。例如,当我点击第二个索引,然后点击第一个索引时,即使我刚刚点击了具有索引1的视图控制器,我的最后一次点击仍然显示为在索引2处选择了视图控制器。此外,selectedIndex始终我第一次单击任何视图控制器时正确列出,但在第一次通过tabBarController查看之后从未更正。
我查看了tabBarController类的引用,但它看起来像这个selectedIndex属性应该是直截了当的。我错过了什么?
使用dispatch_once或其他东西或使用tabbar delegate – Andy 2014-12-01 23:36:06
@安迪感谢您的意见,但dispatch_once将无法正常工作,因为我正在重复使用不同tabBar索引的视图控制器。我看了看Tabbar委托,但我没有看到如何/为什么这是如何解决这个selectedIndex滞后。你能澄清吗? – 2014-12-01 23:43:26
你是什么意思“我重复使用视图控制器跨越不同tabBar索引”?解释你的控制器设置。 – rdelmar 2014-12-01 23:44:50