簡體   English   中英

iOS在2個導航控制器之間切換

[英]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

解決方案1

一種解決方案是僅使用單個導航控制器。 當用戶登錄時,您將彈出用於登錄的所有視圖控制器並將主視圖控制器推送到堆棧上。

解決方案2

或者,您可以在登錄資料的基礎上以模式方式呈現新的導航控制器,主控制器為其根。 它將簡單地呈現在它之上。

解決方案3

您還可以考慮先使用主視圖控制器創建導航控制器,然后在其上顯示登錄導航控制器。 然后,當用戶登錄時,您只會關閉顯示主視圖控制器的登錄導航控制器。

設置導航控制器故事板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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM