无法在View Controller iOS Swift中显示TabBar

时间:2018-02-11 03:10:59

标签: ios swift uitabbarcontroller uitabbar

收到推送通知时,我正在尝试导航到表格视图控制器(ReportTVC)。我的故事板中视图控制器的层次结构如下所示。

TabBarController - >导航控制器(故事板ID:CasesNavController) - > TableViewController(CasesTVC) - > TableViewController(CaseSummaryTVC) - > TableViewController(ReportTVC

导航控制器正在按预期显示ReportTVC,但是当我导航回到CasesTVC时,我应该有一个带有标签的TabBar,但是缺少。< / p>

有人可以告诉我如何解决这个问题吗?

在AppDelegate.swift中:

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let navController = mainStoryboard.instantiateViewController as! UINavigationController

let reportTVC = mainStoryboard.instantiateViewController(withIdentifier: "ReportTVC") as! ReportTVC
reportTVC.obtainDoctorReport = true
reportTVC.caseId = caseId


navController.pushViewController(reportTVC, animated: true)
self.window?.rootViewController = navController
self.window?.makeKeyAndVisible()

1 个答案:

答案 0 :(得分:0)

这里的问题是你将NavigationController设置为rootViewController,你需要将TabBarController设置为root。

let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let navController = mainStoryboard.instantiateViewController(withIdentifier: "Nav") as! UINavigationController
let tabController = mainStoryboard.instantiateViewController(withIdentifier: "Tab") as! UITabBarController

let reportTVC = mainStoryboard.instantiateViewController(withIdentifier: "ReportTVC") as! ReportTVC
reportTVC.obtainDoctorReport = true
reportTVC.caseId = caseId

navController.pushViewController(reportTVC, animated: true)
tabController.setViewControllers([navController], animated: false)
self.window?.rootViewController = tabController
self.window?.makeKeyAndVisible()

你不应该忘记你还需要在TabBarViewController中添加其他ViewControllers。

相关问题