gpt4 book ai didi

ios swift - 从多个选项卡实例化相同的 VC

转载 作者:行者123 更新时间:2023-11-28 06:17:17 27 4
gpt4 key购买 nike

我有多个选项卡通过单独的导航 Controller 连接。我想实例化相同的 End Pt VC,无论用户选择哪个选项卡 1 到 4。

storyboard

当我选择 Tab 1 时,它显示 End Pt VC,因为它是通过 Segue 连接的。但是,当我选择其他选项卡时,我手动尝试推送 EndPt VC,如选项卡 Controller 方法中所示。但它显示黑屏。无论选项卡选择如何,如何呈现相同的 End Pt VC?

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

if let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "EndPointTVC") as? EndPtListTableViewController{
viewController.selectedTab = self.selectedTab

if let navigator = self.navigationController {
navigator.pushViewController(viewController, animated: true)
}
}


}

最佳答案

您可以通过其委托(delegate) UITabBarControllerDelegate 检测 UITabBarController 何时更改选项卡。在下面的委托(delegate)方法中,您可以将选定的 View Controller 转换为 UINavigationController(这是我在您所附的屏幕截图中可以看出的内容)。

extension MyTabBarController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let myVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MyViewControllerStoryID") as! MyViewController
let navController = viewController as! UINavigationController
navController.viewControllers = [myVC]
print(viewController)
}
}

现在,无论您选择哪个选项卡,都会创建一个新的 MyViewController 实例。即使多次点击同一个选项卡也会将当前实例替换为新的 MyViewController 实例。

关于ios swift - 从多个选项卡实例化相同的 VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750991/

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