मैं अपने UIWindow के रूट व्यू कंट्रोलर पर modalPresentationStyle = UIModalPresentationCurrentContext
सेट करके इसे पूरा करने में सक्षम था, अगर मैंने इस रूटव्यू कंट्रोलर के शीर्ष पर कोई नया पूर्ण स्क्रीन दृश्य नियंत्रक प्रस्तुत नहीं किया है।
UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:YES completion:nil];
मैं दोनों मेरी खिड़की के rootViewController के रूप में एक UINavigationController और विभिन्न अन्य कस्टम दृश्य नियंत्रकों के साथ इस की कोशिश की है: मैं कुछ इस तरह से किया था। ऐसा लगता है जब तक कि विंडो की रूटव्यू कंट्रोलर जानता है कि क्या हो रहा है, कोई उप-दृश्य नियंत्रक अंतर्निहित दृश्य को ब्लैक-आउट किए बिना presentViewController:animated:completion:
पर कॉल कर सकता है।
हालांकि, मान लीजिए कि आप अपनी विंडो के रूट व्यू कंट्रोलर के शीर्ष पर एक और दृश्य नियंत्रक प्रस्तुत करते हैं। और यह नया दृश्य नियंत्रक modalPresentationStyle = UIModalPresentationFullScreen
(यानी स्क्रीन लेता है) के साथ प्रस्तुत किया जाता है, तो आपको उस शीर्ष-दृश्य दृश्य नियंत्रक पर modalPresentationStyle = UIModalPresentationCurrentContext
पर कॉल करना होगा।
संक्षिप्त करने के लिए
तो:
- आप UINavigationController है -> UIViewController (रों) (वे और धक्का दिया जा सकता है और पॉप आउट), तो आप
modalPresentationStyle = UIModalPresentationCurrentContext
UINavigationController पर निर्धारित किया है।
- यदि आपके पास UINavigationController -> UIViewController -> नया-UIViewController (modalPresentationStyle UIModalPresentationFullScreen पर सेट है) के साथ, तो आप नए UIViewController पर
modalPresentationStyle = UIModalPresentationCurrentContext
सेट करते हैं।
उम्मीद है कि यह आपके लिए भी काम करता है!
स्रोत
2012-10-26 01:09:57
आप जिस व्यू कंट्रोलर से प्रस्तुत कर रहे हैं उसकी प्रेजेंटेशन शैली क्या है? – brynbodayle
@bbodayle, मुझे एक ही समस्या है, और मैंने व्यू कंट्रोलर दोनों पर सभी प्रस्तुति शैलियों/संयोजनों का प्रयास किया है। –