2009-06-28 10 views
7

Xcode में, उपयोगिता आवेदन टेम्पलेट के साथ एक परियोजना बनाता है:, FlipsideViewControllerव्यू बनाम व्यू कंट्रोलर में कौन सा कोड डालना है, यह चुनने के लिए कैसे करें?

MainView, MainViewController

और

FlipsideView मेरे ऐप में, दो बार देखा गया मुख्य यूआई के अनुरूप और एक प्राथमिकता स्क्रीन। जाहिर है, मैं मुख्य यूआई में prefs को प्रतिबिंबित करना चाहता हूं और सेटिंग्स को याद रखने के लिए डिस्क पर बने रहना चाहता हूं। मुझे पता है कि उस हिस्से को कैसे करना है।

समस्या यह है कि, इसी तरह के ऐप्स के नमूना कोड को देखते हुए, मैं देखता हूं कि कुछ दृश्य में अधिकांश सक्रिय कोड डालते हैं, व्यू कंट्रोलर को स्टब से थोड़ा अधिक छोड़ देते हैं, फिर भी कुछ अन्य इसे दूसरी तरफ करते हैं।

क्या मेरी कार्यक्षमता का बड़ा हिस्सा कहां तय करना है, यह तय करते समय अंगूठे का नियम है?

उत्तर

2

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

तो यह निर्भर करता है कि आपकी कार्यक्षमता का बड़ा हिस्सा क्या कर रहा है: यदि यह उपयोगकर्ता द्वारा बनाई गई जानकारी को बनाए रखता है, तो इसे दृश्य नियंत्रक में होना आवश्यक है।

2

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

लेकिन यदि आप पूरे ऐप में सुसंगत हैं, तो कुछ ऐप तर्क को देखने में ठीक है।

+0

मैं मानता हूं कि आमतौर पर व्यू-बिल्डिंग कोड व्यू क्लास में होता है। और अक्सर, कोई व्यू-बिल्डिंग कोड आवश्यक नहीं है, इसलिए आप पूरी तरह से व्यू क्लास से छुटकारा पा सकते हैं। –

1

स्टैक ओवरव्लो मॉडल मॉडल-व्यू-कंट्रोलर पर पहले से ही कई प्रश्न हैं। उदाहरण के लिए, What goes into the "Controller" in "MVC"? देखें।

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

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