मैं इस समस्या के लिए एक और दृष्टिकोण का सुझाव देना चाहूंगा। व्यू कंट्रोलर को पॉप करने के लिए नेवीगेशन कंट्रोलर का उपयोग करने के बजाए, सिक्योर लीग का उपयोग करें। इस समाधान के कुछ, लेकिन वास्तव में महत्वपूर्ण है, लाभ:
- मूल नियंत्रक गंतव्य के बारे में कुछ भी जाने बिना किसी भी अन्य गंतव्य नियंत्रक (न केवल पिछले एक) पर वापस जा सकता है।
- पुश और पॉप सेगमेंट को स्टोरीबोर्ड में परिभाषित किया गया है, इसलिए आपके दृश्य नियंत्रकों में कोई नेविगेशन कोड नहीं है।
आप Unwind Seगुज स्टेप-बाय-स्टेप में अधिक जानकारी पा सकते हैं । पूर्व लिंक में बेहतर तरीके से कैसे समझाया जाए, जिसमें डेटा वापस कैसे भेजा जाए, लेकिन यहां मैं एक संक्षिप्त विवरण दूंगा।
1) गंतव्य पर जाएं (मूल नहीं) नियंत्रक देखें और एक आराम लीग जोड़ें:
@IBAction func unwindToContact(_ unwindSegue: UIStoryboardSegue) {
//let sourceViewController = unwindSegue.source
// Use data from the view controller which initiated the unwind segue
}
2) दृश्य नियंत्रक से CTRL खींचें ही मूल दृश्य नियंत्रक में बाहर निकलने के आइकन के लिए:
3) कुछ ही समय पहले आपके द्वारा बनाए गए फंक्शन का चयन करें:
4) आराम से बहस का चयन करें और इसे एक नाम दें:
5) मूल दृश्य नियंत्रक के किसी भी स्थान पर जाएं और खोलना लीग को कॉल करें:
performSegue(withIdentifier: "unwindToContact", sender: self)
जब आपका नेविगेशन जटिल होने लगता है, तो मुझे यह दृष्टिकोण अदायगी बहुत मिलता है।
मुझे उम्मीद है इससे किसी को सहायता मिलेगी।