Segue in Swift

Collegare i controller di visualizzazione

Usare storyboard per collegare una serie di UIViewControllers insieme è una questione di trascinare e rilasciare oggetti su storyboard.

Prima di tutto il punto di vista iniziale controller è aggiunto al Controller di Navigazione

La seguente GIF animata che mostra come tre view controller può essere collocato in una fila, con un semplice segue aggiunto tra ciascuno di essi, impostare come segue mostra il che significa che ogni controller di visualizzazione diapositive.

Ho chiamato il sfocia moveToSecond e moveToThird tra il primo e il secondo punto di vista controller e il secondo e il terzo view controller (rispettivamente).

Aggiungi pulsanti con azioni

Dobbiamo aggiungere un pulsante per ogni controller di visualizzazione (per scrivere codice per dare il via asegue).

Questo è un lavoro relativamente semplice operazione di drag and drop (solo il primo pulsante è mostrato qui)

Spostamento di Dati: Il passaggio dei Dati Attraverso un Collegamento

è possibile passare i dati da un view controller ad un altro utilizzando un segue.

Passare al first view controller ci dà quanto segue, con la parte importante che viene commentata (FirstViewController è la classe relativa al first view controller, come mostrato nella gif animata sopra), e l’azione del pulsante è espressa.

Lo useremo per seguire e passare informazioni da un controller di visualizzazione a un altro usandoperformSegue(withIdentifier: String, sender: Any?), attrezzandolo nell’azione del pulsante.

Aggiorniamo l’azione per chiamare il seguente moveToSecond (come indicato sopra). Ora in questo caso non abbiamo bisogno di conoscere il mittente, quindi questo può essere nullo ma dobbiamo assolutamente essere sicuri che la stringa segue sia correttamente identificata. Sappiamo tutti che le stringhe corrispondenti sono una cattiva idea, ma per evitarlo puoi vedere l’adorabile articolo scritto che ho fatto in precedenza.

Ma premendo senza la corrispondenza delle stringhe, usiamoprepare(for:sender:) per, beh, prepararci per il seguito. Il metodo finito assomiglia al seguente (che viene aggiunto al nostro primo controller di visualizzazione):

Ora questo si basa su di noi avere una proprietàdataSent nel controller di visualizzazione che stiamo visitando.

Quindi possiamo posizionarlo nel nome piuttosto attraenteSecondViewController, sebbene sia solo una semplice proprietà inserita all’interno della classe view controller.

Il modo migliore per mostrare questi? Andrò per una GIF animata.

Spostamento dei Dati: Passare i dati indietro attraverso un delegato

Cosa succede se si desidera spostare i dati indietro dal secondo controller vista, potremmo voler passare i dati di nuovo al primo controller vista. Un modo per questo è usare la delega.

Per farlo, abbiamo istituito un delegato

Abbiamo quindi bisogno di conformarsi al delegato dal FirstViewController con la quale ci basta stampare il messaggio.

all’interno di SecondViewController aggiungiamo il delegato come una proprietà, che ho poi scelto di chiamare durante il func viewWillDisappear(_ animated: Bool) quindi, quando la vista è sostituito il messaggio viene inviato

Ci sono un paio di cose qui, questo è un animated gif

Unwind Segue

The unwind segue gives us something rather more.

To traverse from First View Controller to Second View Controller to Third View Controller is a stepwise process. However, an unwind segue gives the ability to move from Third View Controller to First View Controller, skipping the Second View Controller entirely.

Passo nella rilassarsi segue!

NelFirstViewController deve esserci una funzionefunc unwindToFirst(_ unwindSegue: UIStoryboardSegue)che verrà eseguita quando lo storyboard torna alFirstViewController.

The storyboard section of this by control — dragging from a button to the top-right hand button “exit”

So difficult to show! Ecco la GIF animate

È anche possibile passare i dati attraverso il collegamento in un modo simile a quello descritto in precedenza.

Crea il tuo Seguito personalizzato

Un motivo per creare il tuosegue è quello di creare una bella animazione quando viene presentata una vista.

La mia animazione? Una dissolvenza (che rappresenta il nostro dissolvenza dalla vita, amore).

Il seguito che creiamo è un Seguito personalizzato (piuttosto che lo show segue sopra).

all’Interno di questo modello Segue abbiamo Bisogno di selezionare la Classe segue, e impostare un identificatore. Qui lo chiamiamo customSegue.

quindi, Questo utilizza un nuovo file per coprire il nuovoMyCustomSegue classe; ho piuttosto creativo chiamato questo file MyCustomSegue.swift, che eredita daUIStoryboardSegue.

L’azione di seguito verrà, beh, eseguita nella funzione esegui con viene sovrascritta. override func perform()

Prendiamo perform() passo dopo passo. Per ottenere il controllo sulla transizione impostiamo MyCustomSeguecometransitioningDelegate. Nella parte superiore della classe c’è un riferimento mantenuto private var selfRetainer: MyCustomerSegue? = nil che è richiesto come UIKit non mantiene le istanze di UIStoryboardSegue quindi viene creato un riferimento forte alla stessa. Lo stile di presentazione è impostato su .fullScreen per sostituire il controller di visualizzazione originale.

Il transitioningDelegate fornisce metodi che funzionano per la presentazione e il licenziamento. Introdurremo due classi,Presenter eDismisser per trattare con quelli, che adottanoUIViewControllerAnimatedTransitioning eNSObject.

Il presentatore è abbastanza facile da scrivere.

Qui abbiamo il Presentatore incontra il protocollo avente le funzionifunc transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeIntervalefunc animateTransition(using transitionContext: UIViewControllerContextTransitioning).

Il primo di questi è semplicemente un tempo, 1.5 è un lasso di tempo piuttosto bello per questa animazione di dissolvenza.

La lettera è l’animazione; quindi la dissolvenza sarà per il controller di visualizzazione che presenta da traslucido a opaco (cioè da 0,0 a 1,0).

Che cos’è? Vuoi un parco giochi con tutto incluso? Ti darò questo, quindi:

Meglio sarà un intero Repository con il lavoro su di esso. Ok, questo è in fondo a questa pagina.

Conclusione

I Segues non sono così facili come si potrebbe pensare, ma ti permettono di animare il viaggio dell’utente attraverso la tua app e spingere i dati in giro.

Chi non lo vorrebbe?

Spero che questa guida ti abbia dato una spinta nella giusta direzione per questo (anche se divertente) modo di trasferire il tuo utente e i loro dati attorno a un’app.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.