2015-11-11 83 views
2

我有4次,CheckAuthenticationView,HomeView,LoginView和DetailsView一個應用程序的圖。執行SEGUE於可能尚未創建

當用戶開始該應用程序加載的第一個觀點是CheckAuthenticationView。該視圖檢查登錄信息的鑰匙串,如果存在,則嘗試自動登錄用戶,如果成功,則繼續登錄到DetailsView。如果沒有信息存在,它會對HomeView執行一個循環,然後用戶可以繼續登錄。

現在在DetailsView控件我有一個按鈕,以便用戶可以註銷。如果點擊,這會清除所有登錄信息並執行退出(退出)繼續到HomeView。

如果用戶不註銷,但殺死應用程序(重啓手機等),CheckAuthenticationView應該產生一個成功的結果意味着DetailsView控件會自動加載。如果是這種情況,當我點擊註銷時,segue不會觸發,用戶仍然在DetailsView上。

我猜想那是因爲HomeView實際上尚未創建的,因此沒有什麼可Segue公司的SEGUE不會發生。有沒有辦法延續到尚未創建的視圖?

謝謝

回答

0

你是什麼意思,尚未創建?如果您還沒有在故事板中創建ViewController或任何類型的視圖,那麼您不能繼續瀏覽不存在的視圖。如果你已經創建了它,那麼你可以叫:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; 
UIViewController *homeView = [storyboard instantiateViewControllerWithIdentifier:@"HomeView"]; 
[self presentViewController:vc animated:YES(or NO) completion:nil]; 
+0

嗨,我在斯威夫特,self.performSegueWithIdentifier(「unwindToHome」,發件人:個體經營)調用,如果用戶註銷。我面臨的問題是,如果用戶殺死並重新啓動應用程序,HomeView將被繞過,因爲自動登錄腳本會將用戶直接帶到DetailsView。 – puks1978

+1

只要目標視圖**控制器**在故事板中定義(並分配了有效的類),並且其中的segue被命名爲sotryboard,'performSegueWithIdentifier()'應該創建視圖控制器,對? –

+0

不確定。 segue被命名並且視圖控制器被定義爲如果我手動執行登錄(而不是通過Check視圖),那麼一切都按預期工作。如果DetailsView是從CheckAuthenticationView加載的,當我點擊註銷按鈕後,所有的用戶默認等都被刪除,只是沒有繼續。 – puks1978