2016-10-31 77 views
0

您好,我有一個登錄屏幕和導航控制器中的註冊屏幕,用於用戶登錄或想要在應用程序中註冊。我還創建了一個顯示主頁屏幕的Tab控制器。在用戶登錄或註冊後,我希望能夠繼續訪問選項卡控制器,並將其作爲根視圖控制器,因此用戶無法返回到登錄頁面或註冊頁面。請問這是如何完成的?如何從導航控制器切換到選項卡控制器並使其成爲根視圖控制器

下面是幾行代碼時

if statusCode == 200 { 
       do { 
        let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 
        let result = json as? [String: AnyObject] 
        guard let token = result!["token"], let firstname = result!["user"]!["firstname"]! else { 
         print("Error: \(error?.debugDescription)") 
         return 
        } 

        NSUserDefaults.standardUserDefaults().setObject(token, forKey: "token") 
       //code to segue to the tab controller from the nav controller (login screen) 
       self.getHome() 

       } 
       catch { 
        print("Error receiving data") 
       } 
      } 
     }) 
     task.resume() 



    func getHome() { 
    let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
     let tableController = storyboard.instantiateViewControllerWithIdentifier("tabController") as? UITableViewController 

     let appledDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
     appledDelegate.window?.rootViewController = tableController 
} 

用戶登錄在我的文件AppDelegate.swift我檢查,看看是否有令牌,如果不調用登錄頁面或顯示主頁:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    let obj = NSUserDefaults.standardUserDefaults().objectForKey("token") 

    if obj == nil { 

    let welcomeHomeController:UIViewController = WelcomeHomeController(nibName: nil, bundle: nil) 
    welcomeHomeController.view.backgroundColor = UIColor.whiteColor() 
    let navController:UINavigationController = UINavigationController(rootViewController: welcomeHomeController) 

    //create window 
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    self.window?.backgroundColor = UIColor.darkGrayColor() 
    self.window?.rootViewController = navController 
    self.window!.makeKeyAndVisible() 

    return true 

    } 
+0

此帖可能會幫助您! http://stackoverflow.com/questions/39159444/how-to-get-navigation-based-template-functionality-in-swift-programming/39159793#39159793 –

回答

0
func getHome() { 
let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let navController = storyboard.instantiateViewControllerWithIdentifier("tabController") as? UINavigationController //be sure to set the "tabController" in the navigationController and not in the tabcontroller 

    let next = navController.topViewController as! YourTabRootViewController 
    self.navigationController.presentViewController(next, animated: true, completion: nil) 

} 
+0

想知道我的答案是否幫助你? –

相關問題