我有一個應用程序,根據用戶是否已經登錄或不是由不同的VC開始。檢查ViewController是否已經在後臺
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow.init(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
let initialViewController: UIViewController
if DataManager.getInstance().getUserInfo() == nil {
initialViewController = storyboard.instantiateViewControllerWithIdentifier("authenticationViewController")
} else {
initialViewController = storyboard.instantiateViewControllerWithIdentifier("locationsNavigationViewController")
}
window!.rootViewController = initialViewController;
window!.makeKeyAndVisible();
return true
}
如果用戶沒有登錄,應用程序與AuthenticationViewController
開始,否則與LocationsNavigationViewController
,其是NavigationViewController
在後者的VC開始時,是用於註銷的按鈕。問題是當用戶點擊該按鈕時,我不知道是否必須解僱LocationsNavigationViewController
(因爲AuthenticationViewController
在後臺),或者如果我必須解僱LocationsNavigationViewController
並執行一個繼續以打開AuthenticationViewController
。
到目前爲止,我剛剛介紹了第一個用例。因此,在LocationsNavigationViewController
我調用這個函數
func showAuthentication() {
dismissViewControllerAnimated(true, completion: nil)
}
但是,當應用程序與LocationsNavigationViewController
開始駁回VC是不夠的,當然,這是因爲該AuthenticationViewController
從來沒有被實例化。
我該如何解決這個問題?
你使用'UINavigationController'作爲'rootViewController'? –
你沒有呈現任何東西,你設置爲窗口根視圖控制器,所以你不會放棄任何 – Wain
如果你想同時爲rootviewcontroller添加一些好的動畫來改變rootviewcontroller你可以刪除舊的rootviewcontroller並添加新的rootviewcontroller 。否則像isUserLogin那樣在你的位置控制器中添加一個bool值,並加載相應的視圖控制器。 –