2016-07-03 11 views
0

次のビューに移動当初、私はログイン後はその後、プログラム的

-> 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 
+0

、あなたは(setViewControllerにあなたがここで私はダミーのコントローラを使用しています、あなたが希望する順序を置くつもりだ)のようなあなたの階層を設定することができます。 'てみましょうnavigationBar = UINavigationController() navigationBar.setViewController([UIViewController()]、アニメーション:false) self.window?.rootViewController = navigationBar' –

答えて

1

新しいものと入れ替えます。以下のようなものを試してみてください:アプリのデリゲートで

let storyboard : UIStoryboard = UIStoryboard(name: “Main”, bundle: nil) 

    let myCoursesViewController = storyboard.instantiateViewControllerWithIdentifier(“MyCourses”) 

    if isInCourse{ 
     let courseInfoTabController = storyboard.instantiateViewControllerWithIdentifier(“CourseInfo”) as! UITabBarController 
     let navigationBar = UINavigationController() 
     navigationBar.setViewControllers([myCoursesViewController,courseInfoTabController], animated: false) 
     self.window?.rootViewController = navigationBar 
    }else{ 
     self.window.rootViewController = myCoursesViewController 
    }  
+0

、ありがとう! – fes