我一直在使用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