2015-12-24 16 views
6

Sto tentando di lasciare il controller di visualizzazione iniziale e passare al controller di visualizzazione vuoto. Va bene, ma questo renderebbe il controller di visualizzazione vuota anche parte del controller di navigazione, che non è quello che voglio. Voglio uscire dal controller di visualizzazione.Segue fuori dal controller di navigazione

Nel controller della vista cerco di Segue fuori, scatti in esso auto, e quando provo il metodo nella vista apparirà del controllore vista di destinazione, self.navigationController?.topViewController ritorna in sé, ma self.navigationController?.popViewControllerAnimated(animated) non funziona

enter image description here

risposta

4

Se si dispone di un navigationController fare

self.navigationController?.popViewControllerAnimated(false) 

In caso contrario fare

self.dismissViewControllerAnimated(false, completion: nil) 

Aggiornamento

andare al vostro Storyboard, selezionare il ViewController che si desidera individuare e aggiungere un ID storyboard. Assicurarsi che il click "Usa Storyboard ID" enter image description here

Vai alla classe si desidera navigare da e aggiungere il seguente codice

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
// vc is the Storyboard ID that you added 
// as! ... Add your ViewController class name that you want to navigate to 
let controller = storyboard.instantiateViewControllerWithIdentifier("vc") as! ViewController 
self.presentViewController(controller, animated: true, completion: {() -> Void in 
}) 

Aggiungere questo codice nell'azione che si utilizza quando si desidera navigare .

+0

Cool! è fatto prima di chiamare il seguito? –

+0

Sì, quando si desidera lasciare il controller, aggiungere una delle righe sopra nell'azione. –

+0

Ok, bene ho fatto il primo, ma mi sembra che stia rimuovendo il controller di visualizzazione sbagliato, perché non funziona. –

6

Credo che questo possa essere fatto senza dover scrivere alcun codice. Per Segue da un controller di navigazione attenersi alla seguente procedura:

  1. Creare una Segue dal controller View che dispone di un controller di navigazione in quanto è vista radice controller al controller della vista che si desidera andare a successivo (senza essere dentro il controller di navigazione)
  2. Cliccare sulla nuova seque
  3. Aprire l'Attributi ispettore
  4. Scegliere 'Tipo' -> 'Presente modale'
  5. Scegliere 'Presente' -> 'Over contesto attuale'

enter image description here

+0

Non è possibile rilasciare il controller di navigazione. Puoi ancora vedere le viste di navigazione sotto la vista modale. –