2016-02-14 3 views

risposta

3

Prepararsi per i passaggi può passare i dati lungo.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
     if (segue.identifier == "showUpdate") { 

      if let vc: DestinationVC = segue.destinationViewController as? DestinationVC { 
        vc.variable = variableToPass 
      } 

     } 
} 
6

Il metodo performSegueWithIdentifier accetta due argomenti, l'identificatore 1. segue, 2. Il parametro si passa che è di tipo ANYOBJECT?

@IBAction func update(sender: AnyObject) { 

    self.performSegueWithIdentifier("showUpdate", sender: sender) 
} 

Poi nel metodo prepareForSegue, si controlla l'identificativo segue e gettato il parametro mittente al tipo avete passato in precedenza.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showUpdate" { 
     guard let object = sender as? ObjectToUpdateType else { return } 
     let dvc = segue.destinationViewController as! DestinationViewController 
     dvc.objectToInject = object 
    } 
} 
7
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "ExampleSegueIdentifier" { 
      if let destinationVC = segue.destinationViewController as? ExampleSegueVC { 
       destinationVC.exampleStringProperty = "Example" 
      } 
     } 
    }