Swift: Navigate par programme vers ViewController et transmet datatables

J'ai récemment commencé à apprendre rapidement et ça a été plutôt bon jusqu'à maintenant. Actuellement, j'ai un problème en essayant de transmettre des données entre les controllers de vue. J'ai réussi à comprendre comment naviguer par programmation entre deux controllers de vue en utilisant un controller de navigation. Le seul problème est maintenant que j'ai du mal à comprendre comment passer trois strings inputs par l'user (pour json api) à la vue suivante.

Voici ma tentative actuelle. Toute aide est très appréciée!

ViewController:

/* Get the status code of the connection attempt */ func connection(connection:NSURLConnection, didReceiveResponse response: NSURLResponse){ let status = (response as! NSHTTPURLResponse).statusCode //println("status code is \(status)") if(status == 200){ var next = self.storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController self.presentViewController(next, animated: false, completion: nil) } else{ RKDropdownAlert.title("Error", message:"Please enter valid credentials.", backgroundColor:UIColor.redColor(), textColor:UIColor.whiteColor(), time:3) drawErrorBorder(usernameField); usernameField.text = ""; drawErrorBorder(passwordField); passwordField.text = ""; } } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { let navigationController = segue.destinationViewController as! UINavigationController let newProjectVC = navigationController.topViewController as! SecondViewController newProjectVC.ip = ipAddressField.text newProjectVC.username = usernameField.text newProjectVC.password = passwordField.text } 

SecondViewController:

 import UIKit class SecondViewController: UIViewController { var ip:NSSsortingng! var username:NSSsortingng! var password:NSSsortingng! override func viewDidLoad() { super.viewDidLoad() println("\(ip):\(username):\(password)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

La méthode prepareForSegue est appelée lorsque le storyboard de votre application effectue une segue (connection que vous créez dans les storyboards avec Interface Builder). Dans le code ci-dessus, vous présentez le controller vous-même avec presentViewController . Dans ce cas, prepareForSegue n'est pas déclenché. Vous pouvez faire votre configuration juste avant de présenter le controller:

 let next = self.storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController next.ip = ipAddressField.text next.username = usernameField.text next.password = passwordField.text self.presentViewController(next, animated: false, completion: nil) 

Vous pouvez en savoir plus sur segue ici

Syntaxe mise à jour pour Swift 3:

  let next = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as? SecondViewController next.ip = ipAddressField.text next.username = usernameField.text next.password = passwordField.text self.present(next, animated: true, completion: nil)