如何更改 tabbarcontroller 的选定索引?

How to change selected index of tabbarcontroller?

我在 UIViewController 中有一个 UICollectionView 和一个 UIContainerView。容器视图的嵌入视图是UITabBarController。我需要根据 UICollectionView 中的选择更改 tabBarController 中的项目。如何做到这一点?

第 1 步: 声明一个 YourTabBarController

类型的变量

第 2 步:转到故事板并单击连接容器视图和选项卡栏控制器的 segue。给它标识符为“tabBar”或任何你想要的。我在下面的示例中使用了 tabBar 作为标识符。然后你需要调用 prepareForSegue 方法,你可以从这里得到你的标签栏控制器。然后我们将值分配给我们的 yourTabController

Step3: 在您的 didSelectItemAt 方法中,现在您可以更改选定的索引值。

就是这样!

// step1 

private var yourTabController : YourTabBarController!

//step2 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let tbc = segue.destination as? YourTabBarController, segue.identifier == "tabBar" {
     self.yourTabController = tbc
}

//step3 

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    self.yourTabController.selectedIndex = 1 // change it accordingly
}