2015-01-14 22 views
5

2 imleç denetleyicisini hızlı ios içinde kapatmak istiyorum?2 ios denetleyicisini nasıl ios?

Kodum aşağıda.

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

umarım bu feryat kodu swift3 kullanımda bir anda size yardım bu bağlantıyı iki görünüm denetleyicileri sayabilirsinizSon swift3 versiyonu http://stackoverflow.com/questions/24668818/how-to-dismiss-view-controller-in-swift – ErasmoOliveira

cevap

2

Her seferinde bir görünüm denetleyicisini kapatabilirsiniz. Bu

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

bu amaçla özel açma segue var, yığınında belli görünüm kontrolöre geri almak amaçlanmıştır deneyin.

en kaynağı ve hedef olarak (geri üstüne rulo istiyorum) yığınında denetleyici olarak (siz gidin) en üstteki kontrolörü diyelim.

  1. IBAction hedef içinde dinlenmek segue üzerinde tetiklenmesini oluşturun:

    @IBAction func myUnwindAction(segue: UIStoryboardSegue) {}

boş olabilir.

  1. kaynakta kontrolör birini çıkmak için denetleyici simgesinden sürükleyerek bir çözülme segue oluşturmak, bu adımı 1. Çağrı segue unwind oluşturulan eylem bulacaksınız.

  2. şimdi

performSegueWithIdentifier("unwind", sender: nil)

düzenli ben kodundan açma segue sorunu nasıl tarif ile koddan bu segue verebilir. Düğmelerden kurtulmak için IB'den direkt olarak ikondan çıkmak için bir butona basılarak oluşturulabilir.

Ayrıca daha fazla bilgi için bu tartışma kontrol edin: How to perform Unwind segue programmatically?

+0

Bunu yaptığımda, bir çalışma zamanı hatası alıyorum, "Alıcının tanımlayıcısı olan bir alıcısı yok" – peacetype

+1

Bu eğitici burada olabilir ayrıca yardım: https://medium.com/@mimicatcodes/create-unwind-segues-i n-swift-3-8793f7d23c6f – Mattk90

6

Sen

func dismissTwoViews(){ 

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

} 
+1

Hm, bu kod soruda belirtilenle tamamen aynı görünüyor. O zaman fark nedir? Swift2'de, sadece bir denetleyiciyi reddetti, Swift3'te her ikisi de kapandı mı? – Mixaz