2015-01-14 11 views
5

मैं स्विफ्ट आईओएस में 2 व्यू कंट्रोलर को खारिज करना चाहता हूं?स्विफ्ट आईओएस में 2 व्यू कंट्रोलर को कैसे खारिज करें?

नीचे मेरा कोड है।

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

मुझे आशा है कि यह लिंक आपको आपकी मदद कर खारिज कर सकते हैं http://stackoverflow.com/questions/24668818/how-to-dismiss-view-controller-in-swift – ErasmoOliveira

उत्तर

2

आप एक समय में केवल एक व्यू कंट्रोलर को खारिज कर सकते हैं। इस

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

वहाँ उस उद्देश्य के लिए विशेष खोलना segue है, यह ढेर में कुछ दृश्य नियंत्रक को रोल बैक करने का इरादा है की कोशिश करो।

के स्रोत और स्टैक में नियंत्रक गंतव्य के रूप में (जो आप वापस ऊपर रोल करना चाहते हैं) के रूप में सर्वोच्च नियंत्रक (तुम कहाँ से जाना) कहते हैं।

  1. बनाने IBActionमें गंतव्य खोलना segue पर शुरू किया जा करने के लिए:

    @IBAction func myUnwindAction(segue: UIStoryboardSegue) {}

यह खाली हो सकता है।

  1. स्रोत में नियंत्रक नियंत्रक आइकन से खींचकर एक बाहर निकलने के लिए द्वारा एक खोलना segue बनाते हैं तो वह कार्रवाई आप पर चरण 1 कॉल segue unwind बनाया मिल जाएगा।

  2. अब आप नियमित रूप से

    performSegueWithIdentifier("unwind", sender: nil)

मैं कैसे कोड से खोलना segue जारी करने के लिए वर्णित के साथ कोड से कि segue जारी कर सकते हैं। बटन से बाहर निकलने के लिए सीधे आईबी में आइकन से बाहर निकलने के लिए बटन खींचकर सीगू बनाया जा सकता है।

भी अधिक जानकारी के लिए इस चर्चा की जाँच करें: How to perform Unwind segue programmatically?

+0

जब मैं ऐसा करता हूं, मुझे रनटाइम त्रुटि मिलती है, "रिसीवर के पास पहचानकर्ता के साथ कोई सीगू नहीं है" – peacetype

+1

यहां यह ट्यूटोरियल हो सकता है सहायता भी करें: https://medium.com/@mimicatcodes/create-unwind-segues-i एन-स्विफ्ट -3-8793f7d23c6f – Mattk90

6

नवीनतम swift3 संस्करण आप दो दृश्य नियंत्रक एक समय में swift3 उपयोग में इस bellow कोड

func dismissTwoViews(){ 

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

} 
+1

एचएम, यह कोड बिल्कुल प्रश्न के समान ही दिखता है। तब क्या अंतर है? स्विफ्ट 2 में यह केवल एक नियंत्रक को खारिज कर दिया, जबकि स्विफ्ट 3 में यह दोनों बंद हो गया? – Mixaz

संबंधित मुद्दे