以编程方式从另一个 viewController 更改 tabBarController 索引

changing tabBarController Index from another viewController programatically

简短说明。

我有一个 ContainerViewController,我正在推送到 navigationStack

ContainerViewController有2个childUIViewController。一个 SlidePanelViewController(一个 slide-out 菜单)和一个 CenterViewController(内容),我的 CenterViewController 是一个 UITabBarController,目前有 2 个 UIViewController

我的菜单中有一个按钮,我需要更改 tabBarController 中的 UIViewController。但是当我调用我的函数时没有任何反应。

这是我要调用的函数:

func premiumFormulaTapGesture() {
    tabBarController?.selectedIndex = 1
}

(我也尝试将其设置为 0 和 2。仍然没有结果。)我尝试将 self. 放在它前面,但没有任何运气。

我也试过把它作为一个函数放在我的 ContainerViewController 中。但这似乎也没有用。

这是我设置 UITabBarController 的方式:

var centerTabBarController: UITabBarController!

ViewDidLoad()中:

let tabBarController = UITabBarController()
let suggestionsVC = mySuggestions_VC()
let testVC = detaiLSuggestion_VC()
let controllers = [suggestionsVC,testVC]
tabBarController.setViewControllers(controllers, animated: false)

centerViewController = tabBarController
view.addSubview(tabBarController.view)
addChildViewController(tabBarController)

我的 tabBarController 确实出现了。而且我能够手动点击它上面的 2 个按钮,它会按预期在 viewControllers 之间切换。我稍后打算隐藏 UITabBarController,并使用菜单。 UITabBarController 将是我从菜单中更改 UIViewController 的方法。

也只是澄清一下。我没有使用故事板。

任何帮助更改我的 tabBarController 中的 viewControllers 将不胜感激!

Phillip Mills 还没有 post 回答。所以我只是关闭悬而未决的问题。

我的问题是,在将名称更改为 "menuTabBarController" 后,有 2 个 UITabBarControllers 名称相同 "tabBarController" 一切正常。

再次感谢 Phillip Mills 在评论中解决了我的问题。