我如何segue到另一个TabController中的ViewController ?



我正在用Xcode编写一个Swift应用程序,我正在努力做一件事。

我有一个UITabBarController。里面有两个标签,比如& Home"one_answers"News".

  • 在Home选项卡中,有一个导航控制器,一堆内容,一些按钮segue到同一个选项卡中的其他视图控制器。基本的东西。
  • 在新闻标签,有另一个导航控制器,和一个TableView显示(你猜对了)一堆新闻。当我点击新闻时,我segue到NewsDetails视图控制器。也是基本的东西。

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

总结一下,我所寻找的行为如下:当我点击主页上的最新新闻时,我想在新闻选项卡中结束,查看新闻细节。然后,如果我点击后退键,我会回到新闻标签根,而不是Home标签。

我希望我已经讲得够清楚了。任何帮助,指导或领导将不胜感激。

谢谢!

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

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

同样,因为你是从Home视图控制器调用这个,我们可以使用self.tabController直接获取标签栏。或者你也可以使用-

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

最新更新