无法更改tabBar中的选项卡(tabBar:didSelectItem项目:)

时间:2016-07-06 18:21:36

标签: swift uitabbarcontroller

我想在用户点按标签时切换所选标签。假设我有两个选项卡并显示第一个选项卡,然后点击第一个选项卡(以及点击第二个选项卡)应该引导我进入第二个选项卡。我已经实现了一个自定义的UITabBarController,如下所示。

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
......还有很多其他人。

1 个答案:

答案 0 :(得分: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
    } 
}