2015-06-22 16 views
6

Ciao Sto cercando di passare da un controller modale a una barra delle schede senza perdere la barra delle schede? So che la domanda è breve, ma questo è tutto ciò che sto chiedendo.Segue dalla vista modale alla barra delle schede e controlla il controller senza perdere la barra delle schede

Scenario: I controller Vista a barra delle schede, modali A e B. B sono in C view controller. Poi voglio tornare a View Controller A.

Swift per favore: D

+0

Stai tornando al controller barra delle schede da una viewController che è stato presentato modale, o stai modale presentando un visualizzare che è contenuto in un controller della barra delle linguette? – vacawama

+0

sì, barra delle schede viewcontroller quindi modale a un controller di visualizzazione e quindi indietro a un'altra barra delle schede viewcontroller – MasterWizard

+0

indietro in un'altra scheda nello stesso viewController? – vacawama

risposta

11

Ecco il mio esempio di come fare questo. Nella mia configurazione, scelgo il ViewController giallo dalla scheda, quindi premere Go! che presenta modalmente il ViewController bianco. Premendo l'uscita torna al ViewController verde.

Storyboard overview


Per impostare questa funzione, usare un svolgimento segue per tornare alla viewController che vi ha chiamati. Ad esempio, implementalo nel primo ViewController della scheda (quella che chiama il modal segue).

@IBAction func backFromModal(_ segue: UIStoryboardSegue) { 
    print("and we are back") 
    // Switch to the second tab (tabs are numbered 0, 1, 2) 
    self.tabBarController?.selectedIndex = 1 
} 

quindi passare a un'altra scheda utilizzando self.tabBarController?.selectedIndex = n dove n è il numero della scheda si vuole veramente andare. Per impostare la segue rilassarsi, è possibile controllo -Drag da un pulsante nel vostro vista modale controller al icona uscita nella parte superiore della viewController e selezionare backFromModal dal pop up ...

drag from button to Exit enter image description here


O

è possibile impostare la segue di svolgimento da chiamare a livello di programmazione B y controllo -trascinamento dal icona viewController nella parte superiore della viewController modali alla icona uscita, e selezionare backFromModal dal pop-up.

enter image description here

Poi, vai alla Document Outline View e fare clic sul segue svolgimento

enter image description here

e dargli un identificatore nel Attributi ispettore su a destra (ad esempio "returnFromModal").

enter image description here

Poi si chiamerebbe il svolgimento segue come questo:

self.performSegue(withIdentifier: "returnFromModal", sender: self) 
+0

! Ha fatto esattamente quello che volevo fare, non so "esisteva self.tabBarController? .selectedIndex"! – MasterWizard

+0

Come si passano i dati al controller di visualizzazione verde? – Suragch

+0

@Suragch, per passare i dati al controller della vista verde da quello bianco, è possibile rilassarsi direttamente al controller della vista verde e passare i dati durante 'preparare (per: mittente:)'. – vacawama

Problemi correlati