2016-07-06 52 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 
    } 
} 
相关问题