Swift - Segue
Aus Wikizone
Version vom 22. Januar 2023, 14:01 Uhr von 134.3.86.14 (Diskussion) (Die Seite wurde neu angelegt: „ == Segue - Quickstart == * Von einem ViewController mit control zum anderen ziehen (entweder in den Ansichten (gelber Bobbel) oder im Sideview. * Art auswähl…“)
Segue - Quickstart
- Von einem ViewController mit control zum anderen ziehen (entweder in den Ansichten (gelber Bobbel) oder im Sideview.
- Art auswählen
- Identifier vergeben (Property Panel) z.B. goToResults
Segue Code für den Übergang
Im Start Controller kann man nun den ZielView mit der performSegue Funktion die jeder View enthält aufrufen:
self.performSegue(withIdentifier: "goToResult", sender: self)
Wenn man außerdem im Zielview Properties setzen möchte kann man das mit der prepare Funktion machen. Diese Funktion wird automatisch aufgerufen wenn man performSegue ausführt.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// you should check if it's the right segue
if segue.identifier == "goToResult" {
print(segue.identifier!)
/**
Originally prepare() targets a UIViewController.
But as we created our view we also created a Subclass of UIViewController
Thus we have to tell which subclass our destination is in the override function.
We can do that by using the "as" keyword . This is called DOWNCASTING.
Exclamation mark (!) means it is a forced downcast. Like with Optionals
this expresses our certainty that the target is a ResultViewController
*/
let destinationVC = segue.destination as! ResultViewController
destinationVC.bmiValue = calculatorBrain.getBMIValue()
destinationVC.advice = calculatorBrain.getAdvice()
destinationVC.color = calculatorBrain.getColor()
/**
via the destination we have access to the destinations properties and can set them.
*/
}
}
Zurück zum Hauptlayer
Der neue View liegt wie oben erstellt einfach über dem Mainview. Daher können wir ihn einfach wieder schließen um wieder zum Mainview zu kommen.
@IBAction func recalculatePressed(_ sender: UIButton) {
self.dismiss(animated: true,completion: nil)
}
Buttons öffnet View - The Fast Way
Eine schnelle Möglichkeit einen View über einen Button zu öffnen: Control Drag von einen Button auf einen neuen View. Rechtsklick auf den Button zeigt dir danach die Action die für den Button angelegt wurde.