无法更改 tabBar 内的选项卡(tabBar:didSelectItem 项目 :)
Can't change tab inside tabBar(tabBar: didSelectItem item:)
我想在用户点击选项卡时切换所选选项卡。假设我有两个选项卡并且显示了第一个选项卡,那么点击第一个选项卡(以及点击第二个选项卡)应该会引导我进入第二个选项卡。我已经实现了一个自定义 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
...以及许多其他人。
将 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
}
}
我想在用户点击选项卡时切换所选选项卡。假设我有两个选项卡并且显示了第一个选项卡,那么点击第一个选项卡(以及点击第二个选项卡)应该会引导我进入第二个选项卡。我已经实现了一个自定义 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
...以及许多其他人。
将 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
}
}