2015-01-14 11 views
5

Voglio ignorare il controller 2 vista in ios veloce?come ignorare il controller 2 vista in ios veloce?

Di seguito è riportato il mio codice.

@IBAction func backButtonTapped(sender: AnyObject) { 
     self.presentingViewController.presentingViewController.dismissViewControllerAnimated(true, completion: nil) 
} 
+0

Spero che questo link è aiutate http://stackoverflow.com/questions/24668818/how-to-dismiss-view-controller-in-swift – ErasmoOliveira

risposta

2

È possibile ignorare un controller di visualizzazione alla volta. Prova questo

@IBAction func backButtonTapped(sender: AnyObject) { 
     self.presentingViewController?.dismissViewControllerAnimated(true, completion: { 
      let secondPresentingVC = self.presentingViewController?.presentingViewController; 
      secondPresentingVC?.dismissViewControllerAnimated(true, completion: {}); 
     }); 
} 
9

C'è speciale rilassarsi segue a tal fine, si intende ripristinare certi controller della vista in pila.

Chiamiamo il controller più in alto (dove si va da) come fonte e il controllore in pila (che si desidera ripristinare torna all'inizio) come destinazione di .

  1. creare IBAction in destinazione per essere attivato su segue si svolge:

    @IBAction func myUnwindAction(segue: UIStoryboardSegue) {}

può essere vuoto.

  1. in fonte controller di creare un segue rilassarsi trascinando l'icona del controller per uscire uno, troverà l'azione si è creato nel passaggio 1. Chiamare la segue unwind.

  2. ora è possibile emettere che segue da codice con regolare

    performSegueWithIdentifier("unwind", sender: nil)

ho descritto come emettere segue rilassarsi dal codice. Per i pulsanti, è possibile creare sequenze che possono essere create direttamente in IB trascinando un pulsante per uscire dall'icona.

controllare anche questa discussione per ulteriori informazioni: How to perform Unwind segue programmatically?

+0

Quando faccio questo, ottengo un errore di runtime, "Il ricevitore non ha alcun seguito con identificatore" – peacetype

+1

Questo tutorial qui potrebbe aiuto pure: https://medium.com/@mimicatcodes/create-unwind-segues-i n-swift-3-8793f7d23c6f – Mattk90

6

Ultima versione swift3 È possibile licenziare due controller di vista in un momento in uso swift3 questo codice muggito

func dismissTwoViews(){ 

self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil) 

} 
+1

Hm, questo codice sembra esattamente lo stesso di quello pubblicato nella domanda. Qual è la differenza allora? In Swift2 ha eliminato un solo controller, mentre in Swift3 chiude entrambi? – Mixaz

Problemi correlati