如何在另一个 TabController 中转到 ViewController?

How can I segue to a ViewController in another TabController?

我正在 Xcode 中使用 Swift 编写一个应用程序,但我正在努力解决一件事。

我有一个 UITabBarController。其中有 2 个标签,假设是“主页”和“新闻”。

现在,我的问题来了。 在首页,我显示最新的新闻,而且只有这一条。现在,如果我点击这个新闻,我会转到 NewsDetails 视图控制器,但我会留在主页选项卡和它自己的导航控制器中。 我想做的是转到 NewsDetails,但是在 News 选项卡和 News Navigation Controller 中。

总而言之,我正在寻找的行为如下:当我点击主页中的最新新闻时,我想在“新闻”选项卡中结束,查看新闻详细信息。从那里,如果我点击后退按钮,我将返回到“新闻”选项卡根目录,而不是“主页”选项卡。

我希望我已经足够清楚了。非常感谢任何帮助、指导或指导。

谢谢!

if let tabVC = self.tabController {
    tabVC.selectedIndex = 1
    if let navController = tabVC.selectedViewController as? UINavigationController {
        let vc = UIViewController()
        navController.pushViewController(vc, animated: false)
    }
}

由于您提到只有 2 个选项卡,所以我假设新闻是第二个选项卡,因此将 selectedIndex 设为 1

此外,由于您是从主页视图控制器调用它,我们可以使用 self.tabController 直接获取标签栏。或者你也可以使用 -

let tabVC = UIApplication.shared.keyWindow?.rootViewController as? UITabBarController