iphone - Two UIViews, one UIViewController (in one UINavigationController) -


UITableViewController के साथ एक आईफोन ऐप को UINavigationController पर धकेल दिया गया,

नहीं एक UITableView

अब, मुझे पता है कि इस सवाल पर भिन्नता पहले से ही स्टैक पर मौजूद है ओवरफ्लो। हालांकि, इस मामले में, कि वैकल्पिक दृश्य नहीं UINavigationController पर धक्का दिया जाएगा यह दृश्यमान होगा कि वर्तमान UIViewController के तालिका को फ़्लिप करने और दूसरे दृश्य को प्रकट करने के लिए, फिर वापस फ्लिप करने में सक्षम होने के रूप में। दूसरे शब्दों में, यह UINavigationController पदानुक्रम में एक स्थान लेने का इरादा है।

इसके अलावा, जो भी चयन आप अंततः किसी भी दृश्य के भीतर से करते हैं, वह सामान्य UIViewController UINavigationController स्टैक पर।

अभी भी अधिक जानकारी: हम इस युग्म को संभाल करने के लिए एक अलग UINavigationController का उपयोग नहीं करना चाहते हैं विचार, और हम इन दोनों को किसी भी UITabBarController के माध्यम से विभाजित नहीं करना चाहते हैं प्रत्यक्ष रूप से और प्रासंगिक रूप से, यूएक्स का मतलब एक ही सिक्के के दो तरफ दिखाना है। यह सिर्फ यही है कि उन दोनों पक्षों को सामान्य व्यवहार में अपने स्वयं के व्यू नियंत्रकों को शामिल करना होता है।

अब ... यह पता चला है कि मैं पहले से ही चला गया हूं और इसे जल्दी से सेट अप करने के लिए सेट करें कि यह कैसे काम करे! हालांकि, इसे जांचने के लिए वापस कदम उठाने पर, मुझे अलग-अलग छाप मिलती है कि मैं इसके बारे में एक गैर-एमवीसी तरीके से चला गया, जो निश्चित रूप से मुझे चिंतित करता है।

यहां मैंने जो कुछ उच्च स्तर पर किया ।

अभी, मेरे पास एक UIViewController ( नहीं एक UITableViewController ) जो दो दृश्यों के बीच सभी समानताएं संभालता है, जैसे कि कच्चे डेटा को प्राप्त करना मेरे पास दो एनआईबी हैं, प्रत्येक दृश्य के लिए एक और दो UIView ऑब्जेक्ट्स उनके साथ जाने के लिए हैं I (उनमें से एक UITableView है, जो एक प्रकार का UIView है।)

मैं एनीमेशन (आसान पर्याप्त) का उपयोग करते हुए विचारों के बीच स्विच करता हूं। इसके अलावा, चीजों को इनकॉप्लेटेड रखने के प्रयास में, अब-विभाजन-अलग UITableView ( UIViewController ! नहीं) अपने खुद के प्रतिनिधि और डेटा स्रोत के रूप में कार्य करता है, कुलपति। वीसी को तालिका दृश्य में एक कमजोर, गैर-बनाए रखा ऑब्जेक्ट के रूप में स्थापित किया गया है। समानांतर में, वैकल्पिक दृश्य, वैसे ही उसी तरह से उपकुलपति से कच्चे आंकड़ों पर मिलता है।

इसलिए, कुछ ऐसी चीजें हैं जो हास्यास्पद हैं जो यहां मजेदार हैं। बच्चे को माता-पिता से जोड़ना कमजोर है, जबकि विनम्र, ऐसा लगता है कि यह गलत हो सकता है तालिका के डेटा स्रोत और प्रतिनिधि को भी UITableView बनाना मेरे लिए अजीब लगता है, यह सोचते हुए कि एक दृश्य नियंत्रक है जहां आप प्रति ऐप्पल के एमवीसी आरेखों को रखना चाहते हैं। जैसा कि अब खड़ा है, ऐसा लगता है कि दृश्य मॉडल के बारे में जानता है, जो अच्छा नहीं है। दोनों दृश्यों को अग्रिम रूप से लोड करना अजीब लगता है, क्योंकि आलसी लोडिंग अब प्रभाव में नहीं है। UITableViewController के लाभों को खोना (जैसे टेक्स्ट फ़ील्ड के साथ कोशिकाओं पर ऑटो-स्क्रोलिंग) भी थोड़ा निराशाजनक है, और मैं उस पहलू को फिर से नहीं बदलना चाहता जो इसके आसपास काम करता है।

उपरोक्त सभी को देखते हुए, और हमें एक एकल UINavigationController पर एक स्थान के संदर्भ में "फ्लिप इफेक्ट" चाहते हैं, और यह देखते हुए कि दोनों विचार एक ही सिक्का के दो पहलू हैं, क्या यह डिजाइन करने का एक बेहतर और अधिक स्पष्ट तरीका है कि मैं पूरी तरह से याद करने के लिए बस रहा हूं? सुराग की सराहना!

मेरा दृष्टिकोण इस प्रकार होगा, लेकिन मैंने इसका परीक्षण करने के लिए इसका परीक्षण नहीं किया है । UINavigationController में एक संपत्ति है, दृश्य नियंत्रक, जो वर्तमान में नेविगेशन नियंत्रक के स्टैक पर दृश्य नियंत्रक की एक सरणी देता है। एक विधि भी है, सेट विवरकंट्रोलर्स: एनिमेटेड, जो आपको एक बार में सभी नेविगेशन नियंत्रक के दृश्य नियंत्रक को सेट करने की अनुमति देता है। जब उपयोगकर्ता तालिका दृश्य से वैकल्पिक दृश्य में स्विच करना चाहता है, तो निम्न कार्य करें: 1. एनएवी नियंत्रक के स्टैक पर दृश्य नियंत्रक की सरणी प्राप्त करें। 2. तालिका दृश्य या वैकल्पिक गैर-तालिका दृश्य नियंत्रक के साथ अंतिम सरणी तत्व को बदलें। 2. SetViewControllers का उपयोग करें: शीर्ष पर वांछित दृश्य नियंत्रक के साथ एनएवी नियंत्रक में स्टैक वापस करने के लिए एनिमेटेड।

फ्लिपिंग एनीमेशन, यदि आप इसे चाहते हैं, तो दृश्य नियंत्रक के ViewDidLoad या देखेंडडपपर विधि।


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -