2016-10-31 2 views
0
macht

Hallo, ich habe einen Anmeldebildschirm und Registrierungsbildschirm in einem Nav-Controller für wenn ein Benutzer anmeldet oder in einer Anwendung anmelden möchte. Ich habe auch einen Tab-Controller erstellt, der den Startbildschirm anzeigt. Nachdem der Benutzer sich anmeldet oder sich anmeldet, möchte ich in der Lage sein, zum Tab-Controller zu wechseln und diesen zum Root-View-Controller zu machen, und somit kann der Benutzer nicht zur Anmeldungs- oder Registrierungsseite zurückkehren. Bitte wie kann das erreicht werden?Wie man von einem Nav-Controller zum Tab-Controller übergeht und es Root-View-Controller

Unten finden Sie einige Zeilen Code, wenn sich der Benutzer in

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 
} 

in meiner AppDelegate.swift in Datei sehe ich überprüfen, ob ein Token, wenn nicht die Login-Seite oder zeigen Homepage aufruft:

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

Dieser Beitrag könnte Ihnen helfen! http://stackoverflow.com/questions/39159444/how-to-get-navigation-based-template-funktionality-in-swift-programming/39159793#39159793 –

Antwort

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

fragte sich, ob meine Antwort Ihnen geholfen hat? –

Verwandte Themen