Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在swift中检测选项卡栏索引的更改?_Swift_Uitabbarcontroller_Tabbar - Fatal编程技术网

如何在swift中检测选项卡栏索引的更改?

如何在swift中检测选项卡栏索引的更改?,swift,uitabbarcontroller,tabbar,Swift,Uitabbarcontroller,Tabbar,在选项卡栏控制器中有3个选项卡:Main、TabOne、TabTwo(选项卡索引分别为0、1、2) 主视图控制器有一个表视图,它将显示数组中的所有元素。在视图控制器TabOne和TabTwo中,它们都有按钮: @IBAction func mypost(_ sender: Any) { tabBarController?.selectedIndex = 0} 主视图控制器中的阵列应根据上一个视图控制器的选项卡索引进行不同的更改。前任。 如果前面的视图控制器是TabTwo,那么表视图将只

在选项卡栏控制器中有3个选项卡:Main、TabOne、TabTwo(选项卡索引分别为0、1、2)

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

@IBAction func mypost(_ sender: Any) {
    tabBarController?.selectedIndex = 0}
主视图控制器中的阵列应根据上一个视图控制器的选项卡索引进行不同的更改。前任。 如果前面的视图控制器是TabTwo,那么表视图将只显示偶数索引的所有元素 但是 如果前面的视图控制器是TabOne,那么表视图将只显示奇数索引的所有元素


如何操作?

一种可能的解决方案是将主视图控制器设置为选项卡栏控制器的代理。然后执行委托方法
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
}

你的问题不是很清楚。你到底有什么问题?我建议重新考虑你的界面。