मुझे लगता है कि ऐसा लगता है, जैसे UIAlertView, इसे एक नए UIWindow में प्रस्तुत किया गया है ताकि खिड़की लेवल संपत्ति गारंटी दे कि यह सभी सामग्री पर प्रस्तुत की गई है।
चाहे यह एक नए UIWindow में है, जहां तक नियंत्रक रोकथाम का संबंध है, आपको यूआईपीओवर कंट्रोलर में मौजूद दृश्य नियंत्रकों में जटिल अभिभावक-बाल दृश्य नियंत्रक कंटेनर पदानुक्रमों का उपयोग करने में कोई समस्या नहीं होनी चाहिए। मेरे पास कुछ पॉपओवर के लिए
Pillboxie में घोंसले के कम से कम तीन स्तरों के साथ नियंत्रण नियंत्रक हैं, बिना किसी समस्या के।
अपडेट: मैंने नमूना प्रोजेक्ट में दृश्य पदानुक्रम के पहले तीन स्तरों के वर्गों को लॉग करके पदानुक्रम की जांच की है, और यह तब होता है जब एक पॉपओवर दिखाई देता है (मेरे मूल दृश्य नियंत्रक के पास दो UIButtons थे) :
एक खिड़की:
_SUBVIEW वर्ग: UIView
___SUBSUBVIEW वर्ग: UIRoundedRectButton
_ _SUB SUBSUBVIEW वर्ग: UIButtonLabel
___SUBSUBVIEW वर्ग: UIRoundedRectButton
_ _SUBSUBSUBVIEW वर्ग: UIButtonLabel
_SUBVIEW वर्ग: UIDimmingView
___SUBSUBVIEW वर्ग: _UIPopoverView
_ _SUBSUBSUBVIEW वर्ग: _UIPopoverStandardChromeView
_ _SUBSUBSUBVIEW वर्ग: UIView
एप्पल के प्रलेखन कहा गया है कि एक UIWindow में जड़ दृश्य नियंत्रक के दृश्य, कोई भाई अन्य दृश्य नियंत्रक द्वारा प्रबंधित दृश्य पेश करते हैं चाहिए, क्योंकि उन भाई दृश्य नियंत्रकों रोटेशन घटनाओं प्राप्त नहीं होगी (here देखना , दूसरी गोली)।
तो, अगर ऐप्पल ने UIPopoverController को UIViewController subclass बनाया था, तो इसे रूटव्यू कंट्रोलर के पदानुक्रम के बच्चे/सबव्यूव के रूप में जोड़ना होगा। लेकिन क्या होगा यदि रूट व्यू कंट्रोलर (जो है कोड, वैसे भी) एक ऐसा दृश्य पेश करने का निर्णय लेता है जो UIPopoverController के दृश्य के पदानुक्रम में हस्तक्षेप करता है? हमें इसे उछालने की बजाय, ऐसा लगता है कि ऐप्पल ने यूआईपीओवर कंट्रोलर की प्रस्तुति को पूरी तरह से प्रबंधित करने का फैसला किया, लेकिन इस तरह से उन्हें यूआईविंडो की नो-सिब्लिंग-व्यू-कंट्रोलर्स पॉलिसी के लिए अपवाद नहीं देना पड़ा।
पॉपओवर उसी विंडो में प्रस्तुत किया जाता है जिसे 'पासथ्रू व्यू' काम करने के लिए आवश्यक है। दृश्य नियंत्रक रोकथाम के साथ, मेरा मतलब था कि पॉपअप के मूल दृश्य नियंत्रक के लिए, 'parentViewController' (शायद, कोशिश नहीं की गई है) परिभाषित नहीं है। कोर्स के कंटेंट व्यू कंट्रोलर के विभिन्न स्तरों के भीतर नियंत्रण, लेकिन यह मेरा मुद्दा नहीं था। –
आपका अद्यतन उत्तर समझ में आता है। क्लिप किए गए दृश्यों से बचने के लिए इसे रूट व्यू कंट्रोलर के दृश्य पदानुक्रम के बाहर होना चाहिए। इसलिए यह UIViewController रोकथाम पदानुक्रम का हिस्सा नहीं हो सकता है। –