在Swift 3中实例化视图控制器和选项卡栏控制器

7

我该如何切换到选项卡栏控制器?选项卡上有2个包含导航控制器的视图控制器,而选项卡栏控制器上则有一个导航控制器。

let storyboard = UIStoryboard(name: "PendingOverview", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "PendingOverviewVC") as! PendingOverViewController
let nc = UINavigationController(rootViewController: vc)
self.present(nc, animated: false, completion: nil)

谢谢你。

你在问题中提到了segue,在代码中使用的是present吗? - Nirav D
是的,抱歉我使用了字面上的术语“segue”。不过还是谢谢。 - Denis
你尝试过我的解决方案了吗?它对你有用吗? - Nirav D
1个回答

7
Storyboard中设置标识符为UITabbarController,然后使用instantiateViewController呈现该UITabbarController
let storyboard = UIStoryboard(name: "PendingOverview", bundle: nil)
let tabbarVC = storyboard.instantiateViewController(withIdentifier: "TabbarIdentifier") as! UITabbarController
if let vcs = tabbarVC.viewControllers, 
   let nc = vcs.first as? UINavigationController,
   let pendingOverVC = nc.topViewController as? PendingOverViewController {

      pendingOverVC.pendingResult = pendingResult
}
self.present(tabbarVC, animated: false, completion: nil)

我该如何传递一个值,因为在最终的视图控制器中我得到了nil? - Denis
你想在哪个viewController中首先传递值,这两个viewController都嵌入在NavigationController中? - Nirav D
让vc = storyboard.instantiateViewController(withIdentifier: "MyTabController") as? MyViewController vc.datatopass = datatopass - Denis
是的,它会经过选项卡 VC、导航 VC 和结束 VC。 - Denis
1
@Denis 不要在这里添加代码,编辑你的问题并附上新的代码,这样更容易理解你的意图。 - Nirav D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接