gpt4 book ai didi

swift - 快速从 uiview 访问选项卡栏

转载 作者:行者123 更新时间:2023-11-30 10:25:29 24 4
gpt4 key购买 nike

在我的应用程序中,当我收到任何通知时,我会显示一个自定义 View 。如果用户触摸屏幕上的任何位置, View 就会消失。我有一个带有四个选项卡的 UITabBar。收到通知后,当我单击 View 时,应选择第二个选项卡(我可能位于应用程序中的任何位置)。但我无法选择第二个选项卡。它始终打开第一个选项卡。如何从此自定义 View 中调用“didSelect item”?以下是我的代码。请验证并帮助我解决问题。

我的代码是:

{
let storyBoard = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MainTabbarView") as? MainTabbarView
storyBoard?.selectItem(withIndex: 3)
}

在我的 UITabBarController 中我编写了以下代码:

func selectItem(withIndex index: Int) {
if let controller = tabBarController, let tabBar = tabBarController?.tabBar, let items = tabBarController?.tabBar.items {
guard index < items.count else { return }
controller.selectedIndex = index
controller.tabBar(tabBar, didSelect: items[index])
}
}

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if let items = tabBar.items {
items.enumerated().forEach { if $1 == item { print("your index is: \($0)") } }
}
}

最佳答案

根据您的代码,您正在初始化 TabBarController 的新实例,而不是使用事件实例,因此它实际上不会更新当前的选项卡栏。您可以访问 tabBarController 拥有的 View Controller 。然后从那里开始:

activeViewController.tabBarController.selectedIndex = 1

应该可以了。

关于swift - 快速从 uiview 访问选项卡栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60081895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com