如何检测swift中的标签栏索引变化?

时间:2018-05-31 20:47:07

标签: swift uitabbarcontroller tabbar

我在标签栏控制器中有3个标签:Main,TabOne,TabTwo(分别为标签索引0,1,2)

主视图控制器有一个表视图,将显示一个数组中的所有元素。在视图控制器TabOne和TabTwo中,它们都有按钮:

@IBAction func mypost(_ sender: Any) {
    tabBarController?.selectedIndex = 0}

主视图控制器中的数组应根据前一个视图控制器的选项卡索引进行不同的更改。防爆。 如果前一个视图控制器是TabTwo,则表视图将仅显示偶数索引的所有元素 的 BUT 如果前一个视图控制器是TabOne,则表视图将仅显示奇数索引的所有元素

我该怎么做?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是让主视图控制器将其自身设置为标签栏控制器的委托。然后实现委托方法shouldSelect并查看选项卡控制器当前选择的索引。

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
    let index = tabBarController.selectedIndex
    if index == 1 {
        // load data appropriate for coming from the 2nd tab
    } else index == 2 {
        // load data appropriate for coming from the 3rd tab
    }

    return true
}