मैं एक साधारण क्विज़ एप्लिकेशन डिज़ाइन कर रहा हूं। एप्लिकेशन को विभिन्न प्रकार के प्रश्नोत्तरी प्रदर्शित करने की आवश्यकता है। प्रत्येक प्रकार के क्विज़ क्वेस्टियन का एक अलग व्यवहार और यूआई है। alt text http://dl.getdropbox.com/u/907284/Picture%201.pngआईफोन सबव्यू डिज़ाइन (UIView बनाम UIViewController)
मैं इंटरफ़ेस बिल्डर में QuizQuestion के प्रत्येक प्रकार के डिजाइन करने के लिए सक्षम होने के लिए करना चाहते हैं:
यूजर इंटरफेस कुछ इस तरह हो जाएगा।
उदाहरण के लिए, एक MultipleChoiceQuizQuestion इस प्रकार दिखाई देगा: alt text http://dl.getdropbox.com/u/907284/Picture%202.png
मूल रूप से, मैं QuizQuestion वर्ग एक UIViewController बनाने की योजना बनाई। हालांकि, मैंने ऐप्पल प्रलेखन में पढ़ा है कि UIViewControllers का उपयोग केवल पूरे पृष्ठ को प्रदर्शित करने के लिए किया जाना चाहिए।
इसलिए, मैंने अपना क्विज़ कंट्रोलर (जो पूरे स्क्रीन को प्रबंधित करता है जैसे पिछला/अगला बटन) UIViewController और मेरी QuizQuestion क्लास UIView के उप-वर्ग को बनाया है।
हालांकि, (आईबी में बनाया गया) इस UIView लोड करने के लिए, मैं [1] मेरी निर्माता में निम्न करना होगा:
//MultipleQuizQuestion.m
+(id)createInstance {
UIViewController *useless = [[UIViewController alloc] initWithNibName:@"MultipleQuizQuestion" bundle:nil];
UIView *view = [[useless.view retain] autorelease];
[useless release];
return view; // probably has a memory leak or something
}
पहुँच के इस प्रकार के मानक है या वस्तु उन्मुख करने के लिए प्रतीत नहीं होता। क्या इस प्रकार का कोड सामान्य/स्वीकार्य है? या मैंने अपने डिजाइन में कहीं खराब विकल्प बनाया है?
ठनक यू,
संपादित करें (स्पष्टता के लिए): मैं multipleChoiceView ... एक ViewController तरह नियंत्रित करने के लिए एक अलग वर्ग करना चाहते हैं लेकिन जाहिरा तौर पर है कि पूरे खिड़कियों के लिए ही है। हो सकता है कि मुझे एक एकाधिकChoiceViewManager (नियंत्रक नहीं!) बनाना चाहिए और फ़ाइल के मालिक को इसके बजाय सेट करना चाहिए?
धन्यवाद है, लेकिन मैं एकाधिकChoiceView को नियंत्रित करने के लिए एक अलग वर्ग रखना चाहता हूं ... एक व्यू कंट्रोलर की तरह लेकिन स्पष्ट रूप से यह केवल पूरी विंडो के लिए है। शायद मुझे एक एकाधिकChoiceViewManager (नियंत्रक नहीं!) बनाना चाहिए और फ़ाइल के मालिक को इसके बजाय सेट करना चाहिए? – tba
मुझे लगता है कि आप इसे इस तरह से करने में अपने आप को कठिन बना रहे हैं। प्रतिनिधिमंडल वह है जो आपको उपयोग करने के लिए उपयोग करना है, इसलिए आपका निर्णय इस बारे में है कि आप अपना कोड कहां चाहते हैं - अपनी कक्षा में या दृश्य नियंत्रक वर्ग में जहां इसका उपयोग किया जाएगा। यह स्पष्ट रूप से आपके ऊपर है, लेकिन मुझे नहीं लगता कि आप इसे अपनी कक्षा में रखकर कुछ हासिल कर रहे हैं। सादर। –