最初我在登录后有一个层次结构
-> MyCoursesViewController
-> CourseInfo UITabBarController
如果用户关闭应用程序,然后重新进入,rootViewController 将是正确的 CourseInfo UITabBarController。但是,当用户需要查看不同的课程(退出课程)时,他们不能“返回”到 MyCoursesViewController,因为它不再在堆栈上。
在 AppDelegate 中:
if (inCourse) {
let storyboard : UIStoryboard = UIStoryboard(name: “Main”, bundle: nil)
let courseInfoTabController = storyboard.instantiateViewControllerWithIdentifier(“CourseInfo”) as! UITabBarController
self.window?.rootViewController = courseInfoTabController
} else {
let storyboard : UIStoryboard = UIStoryboard(name: “Main”, bundle: nil)
let myCoursesViewController = storyboard.instantiateViewControllerWithIdentifier(“MyCourses”)
self.window?.rootViewController = myCoursesViewController
}
有什么方法可以将 MyCoursesViewController 作为 rootViewController 然后自动导航到 Course Info UITabBarController 以便 MyCoursesViewController 在层次结构中以防万一他们回击(退出课程)?
或者,如果用户退出课程(回击),我们以某种方式删除 rootViewController 并用新的 rootViewController 替换会更好吗?另一种选择是,如果我们只是替换 rootViewController,旧的会从内存中释放出来还是仍然在某个地方引用?
例如
CourseInfo UITabBarController 目前仍然是 rootViewController 但现在我们将其换成新的
let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil)
let myCoursesViewController = mainStoryBoard.instantiateViewControllerWithIdentifier(“MyCourses”) as! ViewController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = myCoursesViewController