![](/img/trans.png)
[英]Switch between UIViewControllers in storyboard without Navigation Controller
[英]iOS Switch between 2 Navigation controller
在我的應用程序中,如果用戶未登錄,則會顯示嵌入在導航控制器中的登錄控制器。 用戶登錄后,應用程序應切換到其他導航控制器以顯示應用程序。
當用戶登錄時,如何從一個導航控制器切換到另一個導航控制器。 ?
謝謝
我正在檢查用戶是否登錄了應用程序代理:
// Check if user is log
let currentUser = PFUser.currentUser()
if currentUser != nil {
// Do stuff with the user
} else {
// Show the signup or login screen
let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("LogInController") as! UINavigationController
self.window?.rootViewController = nav
}
解決方案:看起來很有效
當用戶按下logIn按鈕時:
let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("MainNavController") as! UINavigationController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = nav
一種解決方案是僅使用單個導航控制器。 當用戶登錄時,您將彈出用於登錄的所有視圖控制器並將主視圖控制器推送到堆棧上。
或者,您可以在登錄資料的基礎上以模式方式呈現新的導航控制器,主控制器為其根。 它將簡單地呈現在它之上。
您還可以考慮先使用主視圖控制器創建導航控制器,然后在其上顯示登錄導航控制器。 然后,當用戶登錄時,您只會關閉顯示主視圖控制器的登錄導航控制器。
設置導航控制器故事板ID
let navigationController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SecondNavigationController")
self.presentViewController(navigationController, animated: true, completion: nil)
希望這可以幫助。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.