2016-07-06 77 views
0

我想在用戶點擊選項卡時切換選定選項卡。比方說,如果我有兩個選項卡並顯示第一個選項卡,那麼點擊第一個選項卡(以及點擊第二個選項卡)應該會引導我進入第二個選項卡。我已經實現了一個自定義的UITabBarController,如下所示。無法更改tabBar內的選項卡(tabBar:didSelectItem項目:)

class CustomizedTabBarContorller: UITabBarController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.delegate = self 
     self.selectedIndex = 1     // this way works 
    } 


    override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) { 

     if tabBar.items?.indexOf(item) == self.selectedIndex { 
      self.selectedIndex = (selectedIndex == 0) ? 1 : 0 // doesn't work 
     } 
    } 

} 

如何根據所選和點擊標籤更改選項卡?

我也看了看:
UITabBar can't change selected index
UITabBarController Set a Default Tab
...等等。

+0

您正試圖動態更改與標籤欄項目相關聯的視圖控制器? – anders

+0

編號其實我並不完全確定你的意思是「動態」,但我有我的FirstViewController和我的SecondViewController總是在他們的位置與第一個和第二個條目相關聯。這不會改變。 – Andrej

+0

我想我不明白你在做什麼 – anders

回答

0

移動self.selectedIndex = self.selectedIndex == 0 ? 1 : 0到主隊列解決問題。奇蹟般有效。

if tabBar.items?.indexOf(item) == self.selectedIndex { 
    dispatch_async(dispatch_get_main_queue(), { 
     self.selectedIndex = self.selectedIndex == 0 ? 1 : 0 
    } 
}