2016-07-03 6 views
0

처음에 내가 로그인 후이 rootViewController 다음 다음보기로 이동 설정, 프로그램

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

: 같은 뭔가 시도 을'하자 내비게이션 바 = UINavigationController() navigationBar.setViewControllerers ([UIViewController()], 애니메이션 : false) self.window? .rootViewController = navigationBar' –

답변

1

로를 교체하십시오. 당신은 (setViewController에 당신이 여기에 내가 더미 컨트롤러를 사용하고 당신이 원하는 순서를 넣어거야)처럼 계층 구조를 설정할 수 있습니다, 앱 위임에서

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