सबसे अच्छा समाधान, यदि आप इसे प्रबंधन कर सकते हैं, इतना है कि यह है कि क्या कोई फर्क नहीं पड़ता अपने कोड को संशोधित करने की कोशिश करने के लिए है: UINavigationController के साथ, आप UINavigationControllerDelegate प्रोटोकॉल में इन दोनों तरीकों को लागू करने के लिए चाहते हो सकता नियंत्रक को धक्का दिया गया था या उसका बच्चा बस पॉप किया गया था। मूल रूप से, एक व्यू कंट्रोलर अपने दृश्य और ऐप पर चलने वाले डेटा के बीच मध्यस्थता करता है। जब तक कि डेटा अद्यतित हो, तब तक नियंत्रक को इसके विचार से पहले क्या हो रहा था इसके बारे में चिंतित नहीं होना चाहिए। कार्य जो आपका नियंत्रक वर्तमान में ऐप की पिछली स्थिति के आधार पर करता है, जैसे डेटा अपडेट करना, वास्तव में एक अलग वर्ग में बेहतर हो सकता है।
एक और संभावना, यदि आप स्टोरीबोर्ड का उपयोग कर रहे हैं, तो -viewDidAppear
के बजाय -prepareForSegue:sender:
पर भरोसा करना है। उस विधि में आपके द्वारा पारित सीगू में गुण हैं जो स्रोत और गंतव्य दृश्य नियंत्रकों की पहचान करते हैं, और यह आमतौर पर आपको यह बताने के लिए पर्याप्त जानकारी होती है कि आपका नियंत्रक वर्तमान कैसे होता है।
यदि आपके मामले में उन कार्यों में से कोई भी नहीं, तो अपने कॉन्फ़िगरेशन कोड को एक या अधिक विभिन्न तरीकों से ले जाने पर विचार करें। जिस समस्या का आप सामना कर रहे हैं उसकी जड़ यह है कि -viewWillAppear
वास्तव में इसका मतलब यह नहीं है कि आपको इसकी क्या आवश्यकता है। एक विधि है कि मतलब है कि तुम क्या जरूरत है, -childControllerFinished
की तरह, और कहा किका उपयोग विन्यास काम है कि आप की जरूरत है ऐसा करने के लिए बनाएँ।
धन्यवाद, यह सबसे आसान दृष्टिकोण प्रतीत होता है। –