次のビューに移動当初、私はログイン後はその後、プログラム的
-> 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
}
私はコース情報UITabBarControllerがちょうどそうMyCoursesViewControllerは、彼らが戻ってヒット包み階層にあるにナビゲートし、自動的にその後、rootViewControllerとしてMyCoursesViewControllerを置くことができるいくつかの方法がありますが(講座を終了します) ?
ユーザーがコースを終了した場合(ヒットバック)、rootViewControllerを何とか削除して新しいrootViewControllerに置き換える方が良いでしょうか?もう一つの選択肢は、rootViewControllerを置き換えるだけで、古いものはメモリから解放されるのでしょうか、それともまだどこかで参照されていますか?
CourseInfo UITabBarControllerはまだ現在rootViewControllerですが、今、私たちはあなたの階層を設定することができ、あなたのAppDelegateで
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
、あなたは(setViewControllerにあなたがここで私はダミーのコントローラを使用しています、あなたが希望する順序を置くつもりだ)のようなあなたの階層を設定することができます。 'てみましょうnavigationBar = UINavigationController() navigationBar.setViewController([UIViewController()]、アニメーション:false) self.window?.rootViewController = navigationBar' –