ऐप्पल ने UIKit लिखा, ताकि वे जो भी पसंद कर सकें।
वहाँ सामान हुड के नीचे हो रहा का एक बहुत है: {विल, क्या}
- दृश्य {, दिखाई छुपाएं}
- दृश्य घूर्णन (ओह, सिर दर्द)
- UIViewControllerWrapperView, जो कभी कभी है UIViewController.view के अभिभावक। या कुछ और।
- UIViewController.navigationController/tabBarController/parentViewController/modalViewController
- पॉपओवर अजीब हैं। मुझे यकीन है कि वे कैसे में फिट नहीं कर रहा हूँ।
आप अपने खुद के विचारों को लिखने, तो आप शायद दूर UIViewController का उपयोग कर उन्हें
को नियंत्रित करने के साथ प्राप्त कर सकते हैं, लेकिन सभी जादुई व्यवहार है कि UIKit के लिए देता है की उम्मीद नहीं है एक "उचित" दृश्य नियंत्रक।
संपादित करें: मुझे देर हो चुकी है तो शायद मुझे स्टैक ओवरव्लो नहीं होना चाहिए। मेरा वास्तव में कुछ ऐसा मतलब है:
यदि दृश्य को UIViewController द्वारा नियंत्रित किया जाता है, तो दृश्य नियंत्रक दृश्य नियंत्रक पदानुक्रम में मौजूद होना चाहिए (यानी presentModalViewController:animated:
जैसे फ़ंक्शन)। यह UI बिट को जटिल बिट्स को संभालने की अनुमति देता है।
जब आप [fooSubview addSubview:viewController.view]
जैसे कुछ उपयोग करते हैं, तो UIKit उन सभी चीजों को नहीं कर सकता है जो इसे करना है। viewController
क्या रखता है? यदि कोई स्मृति चेतावनी है और fooSubview अनलोड हो जाता है तो क्या होता है?
यदि आप viewController.view.frame = (CGRect){{0,0},{320,480}}
जैसे कुछ सेट करते हैं, तो आप भी परेशानी के लिए पूछ रहे हैं: UIViewController वर्तमान स्थिति/नेविगेशन/टैब/आदि बार के आधार पर फ्रेम सेट करता है।यह इसे फिर से सेट कर सकता है, या यह तय करने के लिए फ्रेम का उपयोग कर सकता है कि आप शीर्ष पर धक्का देने वाले दृश्य नियंत्रकों को कैसे रखना है (मैंने यह व्यवहार देखा है; यह गन्दा है)। यदि आप viewController.view.transform
बदलते हैं, तो दृश्य रोटेशन पर अजीब चीजें हो सकती हैं, क्योंकि दृश्य परिवर्तन यह है कि UIViewController अभिविन्यास के लिए उपयोग करता है (स्टेटस बार के साथ और अन्य चीजों का ढेर)।
केवल एक अच्छी तरह से समर्थित अपवाद मैं के बारे में पता नहीं है:
[window addSubview:viewController.view];
[window makeKeyAndVisible];
(वास्तव में, आप viewController.view विंडो के अंदर एक पूर्ण विंडो दृश्य के अंदर छड़ी कर सकते हैं, मुझे यकीन है कि कैसे काम करता है नहीं कर रहा हूँ ।)
मुझे लगता है कि ओएस 4.0+ में आपको window.rootViewController = viewController
सेट करना होगा।
क्या आप संदर्भ में लिंक पोस्ट कर सकते हैं? स्क्रीन को भरने या भरने के बावजूद मैं हमेशा छोटे विचारों के लिए व्यू कंट्रोलर बनाता हूं। परिणाम और अच्छी प्रैक्टिस देखना चाहते हैं, कृपया लिंक पोस्ट करें। । । –
@राज: मैंने अपने प्रश्न के शीर्ष पर एक लिंक जोड़ा – Casebash