पृष्ठभूमि: मैं एक modalView कि मैंने पहले और अभी वर्तमान में एक ही viewController
कि मैं सिर्फ नई जानकारी के साथ खारिज कर दिया प्रस्तुत किया है को खारिज करना चाहते हैं।iOS: खारिज और उसके माता पिता ViewController के लिए उपयोग के बिना ModalViewController पेश
समस्या: मैं माता पिता ViewController
कि रीति से पहले ViewController
प्रस्तुत करने के लिए एक स्पष्ट सूचक के बिना ऐसा करने में बहुत सफल नहीं रहा है। मैं इस कक्षा को लिखने की कोशिश कर रहा हूं जो पिछले viewController
के कोड के साथ गड़बड़ किए बिना काम करता है।
संभावित नेतृत्व: कुछ चीजें मैं प्रयोग कर रहे हैं की जोड़ी हैं:)
1. माता पिता ViewController
है, जो इस समय मैं कैसे करने के लिए पता नहीं है के लिए उपयोग पाने के लिए कोशिश कर रहा है।
UIViewController* toPresentViewController = [[UIViewController alloc] init];
[self dismissViewControllerAnimated:YES completion:^{
[parentViewControllerAccessor presentModalViewController:toPresentViewController animated:YES];
}];
सिद्धांत रूप में यह माता पिता viewController
तक पहुंच दी काम करना चाहिए:
2.) एक बार माता-पिता के लिए उपयोग प्राप्त की है, मैं बस निम्नलिखित कोड लागू कर सकते हैं। मैं ऐसा करने के अन्य तरीकों के लिए खुला हूं।
मानदंड: आपको माता-पिता ViewController
में किसी भी कोड को बदलने की अनुमति नहीं है।
यदि मैं इसे सही ढंग से समझता हूं, तो मुझे यह कोड बदलना चाहिए: '[parentViewControllerAccessor presentModalViewController: toPresentViewController एनिमेटेड: हाँ]; 'to' [self.presentingViewController presentModalViewController: croppedPhotoVC एनिमेटेड: हाँ];'। अफसोस की बात है, यह काम नहीं लग रहा है। क्या मैं कुछ गलत समझ रहा हूँ? – Byte
यह शायद इस बात के कारण है कि ब्लॉक कैसे वस्तुओं को बनाए रखते हैं - यह स्वयं को बनाए रखेगा, लेकिन वर्तमान दृश्य नियंत्रक नहीं, इसलिए समय 'स्वयं' को खारिज कर दिया गया है, इस संपत्ति को शून्य पर सेट किया जा सकता है। ब्लॉक के बाहर एक स्थानीय चर के लिए self.presentingViewController सेट करें, फिर उस चर का उपयोग ब्लॉक के भीतर से करें। – jhabbott
यह वही निष्कर्ष है जिसके साथ मैं आया हूं। मुझे ऐसा करने के लिए एक स्थिर चर बनाना पड़ सकता है कि जब 'स्वयं' हटा दिया जाए, तो विधि अभी भी काम करेगी। लेकिन यह एक हैक की तरह दिखता है। – Byte