我正在用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