2016-09-20 18 views
-1

我不確定如何在應用程序的任何位置重用登錄視圖...因此,當我單擊任何屏幕上的登錄時,可以只是登錄,然後有視圖解僱......我想我沒找到有關在整個應用程序模態顯示一個共同的看法教程...我試圖學習如何從應用程序中的任何位置呈現模態「登錄視圖」

+0

是否使用'UIStoryboard'? – Laffen

+0

-1。你有足夠的搜索嗎?我強烈建議你看看[這個]問題,這是在(http://stackoverflow.com/questions/19962276/best-practices-for-storyboard-login-screen-handling-clearing-of-data-upon-logou) Objective-C但邏輯完全相同。另請參閱此[SWIFT視頻教程](https://www.youtube.com/watch?v=uKXyLmYA0-c&list=PLoN_ejT35AEipRnSHSv5wlHGyjOnHReqx)。基本上你想要的是你必須使用'presentViewController',然後在完成它之後關閉它.FYI登錄屏幕通常是*以模態方式呈現......因爲它們不屬於自然流。 – Honey

回答

0

這應該可能工作。 定義您在登錄視圖控制器中查看。 let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("loginViewController") as! UIViewController 每當你想要顯示登錄屏幕時顯示。

self.presentViewController(vc, animated: true, completion: nil) 
+0

我必須在我的其他視圖控制器中的每一箇中執行此操作,還是可以以某種方式在應用程序級別執行此操作? – BostonMacOSX

+0

您可以在任何實用程序文件的函數中定義該函數並調用它。功能在必要時。 –

-1

試試這個。(你可以讓loginViewController的單個實例,並使用此代碼的應用程序的任何地方。)

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"main" bundle:nil]; 
UIViewController *loginViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"loginViewController"]; 
UIViewController *lastPresentedViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController]; 

while (lastPresentedViewController.presentedViewController) { 
    lastPresentedViewController = lastPresentedViewController.presentedViewController; 
} 

[lastPresentedViewController presentViewController:loginViewController animated:true completion:nil]; 
+0

問題被標記爲「swift」,而不是「objective-c」。 – Moritz

相關問題