2010-11-24 28 views
6

मैं अपना कंटेनर व्यू कंट्रोलर बनाना चाहता हूं, यानी UINavigationController या UITabBarController जैसे कुछ। डॉक्स का कहना है कि मुझे ऐसा नहीं करना चाहिए, लेकिन क्यों नहीं? नेविगेशन और टैबबार कंटेनर अच्छे उदाहरण हैं कि ऐसी चीज संभव है और वास्तव में अच्छी तरह से काम करती है। साथ ही मैं समझता हूं कि आईफोन की छोटी स्क्रीन है और लोगों को नेविगेशन बटन इत्यादि से गड़बड़ नहीं करनी चाहिए, लेकिन आईपैड पर बहुत सी जगह है और इसे कई दृश्य नियंत्रकों को विभाजित करने से हमें बेहतरीन अवसर मिलेंगे।कस्टम कंटेनर व्यू कंट्रोलर

मुझे एहसास है कि ऐप्पल ने अभी तक ऐसी एपीआई नहीं जोड़ा है, लेकिन वे करेंगे। कुछ दिन पहले उन्होंने आईपैड-विशिष्ट नियंत्रकों (हाँ, कंटेनर वाले) के बारे में दस्तावेज़ जोड़े हैं और उन्होंने टेक्स्ट को कुछ कम-प्रतिबंधित करने के लिए संशोधित किया है।

वैसे भी ... यदि मैं एक स्क्रीन पर दो या अधिक दृश्य नियंत्रकों का उपयोग करने का प्रयास करता हूं तो मुझे क्या समस्याएं हो सकती हैं? मुझे पता है कि उनमें से केवल उन्हीं को अभिविन्यास परिवर्तन या कम स्मृति चेतावनी जैसी घटनाएं मिलेंगी, इसलिए मुझे इन घटनाओं को वीसीएस में पास करना होगा। मैं आईओएस के भविष्य के संस्करणों के साथ संगतता के बारे में डरता हूं, क्योंकि अगर वे नई घटनाएं जोड़ देंगे, तो निहित वीसी UIViewController से प्राप्त डिफ़ॉल्ट कार्रवाइयों को निष्पादित नहीं करेंगे। और कुछ? क्या आपको लगता है कि ऐप्पल द्वारा मेरा ऐप खारिज कर दिया जा सकता है? हो सकता है कि प्रत्येक वीसी पर बहुत सारे कोड की प्रतिलिपि किए बिना प्रत्येक स्क्रीन पर कुछ दृश्य तत्व लगातार बने रहें?

अग्रिम धन्यवाद।

उत्तर

2

उपनिवेश UINavigationController या UITabBarController डिवाइस रोटेशन समस्याओं को संभालने का एक शानदार तरीका है, लेकिन मैं विशेष रूप से एकाधिक दृश्य नियंत्रकों से सबव्यू साझा करने की अनुशंसा नहीं करता।

शायद UIViewController को उपclassing आप जो खोज रहे हैं। फिर जब दृश्य लोड हो जाता है, तो आप अपने साझा दृश्यों को एक निब से लोड कर सकते हैं और अपने UIViewController उप-वर्ग में आउटलेट को परिभाषित कर सकते हैं, साथ ही ईवेंट को संभालने के लिए अपने उप-वर्ग में कोई सहायक कोड जोड़ सकते हैं। मैंने इसे एक स्टेटस अपडेट संदेश जोड़ने के लिए स्वयं किया है जिसे मैं अपने किसी भी व्यू कंट्रोलर के विचारों पर प्रदर्शित होने में सक्षम होना चाहता हूं।

+0

मैं मानता हूं कि ऐप्पल यह नहीं कह रहा है कि आपको कस्टम कंटेनर नियंत्रकों का निर्माण नहीं करना चाहिए, केवल यूआईएनएविगेशन नियंत्रक और यूआईटीएबीबार नियंत्रक को वास्तव में उप-वर्गीकृत करने के लिए बनाया नहीं गया है और यदि आप कोशिश करते हैं तो परिणाम अजीब हो सकते हैं। –

+0

आपको मूल रूप से उन लोगों को उप-वर्गीकरण करना पड़ता है जो उन्हें उपयोग करने वाले ऐप में ऑटोरोटेशन प्राप्त करने के लिए करते हैं, और दस्तावेज़ किसी एक को उपclassing के खिलाफ चेतावनी नहीं देते हैं, लेकिन मुझे नहीं लगता कि वह जो करने की कोशिश कर रहा है उसके लिए उसे चाहिए। – spstanley

+0

हाँ, दो वीसी होना संभव है। मैंने परीक्षण किया और सफलतापूर्वक स्क्रीन को दो हिस्सों में विभाजित कर दिया: प्रत्येक भाग के बटन अलग-अलग वीसी द्वारा संभाले गए थे। सब कुछ ठीक काम कर रहा था, एनिमेशन सहित, आदि। मैं साइड इफेक्ट्स के बारे में डरता हूं। ऐप्पल के पास एक कारण होना चाहिए, क्यों वे एक स्क्रीन पर कई वीसी का उपयोग करने की अनुमति नहीं देते हैं। घटनाक्रम समस्याग्रस्त हो सकता है, लेकिन मुझे लगता है कि मैं उन्हें संभाल सकता हूं। मुझे आश्चर्य है कि क्या अन्य समस्याएं हो सकती हैं। – broot

3

अब यह आईओएस 5 में समर्थित है। कुछ उदाहरण कोड के लिए यह प्रश्न देखें: Container View Controller Examples

संबंधित मुद्दे