Ora torniamo allo Storyboard, selezioniamo ViewControllerC e trasciniamo dal view controller al proxy Exit.

Trascinare al proxy Exit

Nel popup selezioniamo il nostro metodo unwind.

Selezioniamo il metodo unwind

Finalmente, diamo un identificatore al nostro unwind segue.

L’unwind segue ora ha un identificatore ed è collegato al metodo unwind.

Ora non resta che innescare l’unwind segue quando viene premuto il nostro pulsante.

@IBAction func backToATapped(_ sender: Any) {
performSegue(withIdentifier: "unwindToA", sender: self)
}

Abbiamo finito! 🥂

Segue unwind

Alcuni dettagli tecnici

Prima di concludere questo articolo voglio guardare cosa fa il runtime sotto il cappuccio.

Localizzare la destinazione è fondamentalmente una passeggiata nella gerarchia del view controller. Il genitore del controllore della vista corrente o presentingViewController sarà il prossimo.

Ad ogni fermata, il runtime deve anche controllare se il controllore della vista ha dei figli perché il metodo unwind potrebbe essere contenuto in uno di questi. Questo viene fatto chiamando il metodo allowedChildrenForUnwinding(from:), che restituisce un array di UIViewControllers che sono i figli del view controller.

Tuttavia, non vogliamo controllare il ramo che contiene il view controller sorgente, poiché siamo appena arrivati da lì. Questo viene evitato chiamando il metodo childContaining(_:), che restituisce il controllore di vista figlio che contiene la fonte del segue unwind. Questo viene rimosso dall’array.

Se l’array restituito contiene dei figli, il processo di cui sopra viene eseguito anche su di essi. Si conclude se viene trovata la destinazione.

Se l’array restituito è vuoto, viene chiamato il metodo canPerformUnwindSegueAction(_:from:sender:), che controlla se il view controller contiene il metodo unwind.

Se è così, abbiamo raggiunto la nostra destinazione e il processo è finito. Se non lo fa, saliamo di un gradino nella gerarchia del view controller ed eseguiamo gli stessi passi.

Conclusione

Spero che vi sia piaciuto questo breve tutorial sugli unwind segues, grazie per aver trovato il tempo di leggerlo.

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.