2010-01-12 6 views
5

मेरे पास UIViewController है जो कई डेटा स्रोतों के साथ tableView एस प्रदर्शित करने में सक्षम होना चाहिए। UITableView स्क्रीन के आधे आकार के आकार में फैला है, और वहां और ऊपर और नीचे बटन है जो आपको विभिन्न डेटा के माध्यम से जाने की अनुमति देता है। हर बार ऊपर और नीचे बटन मारा जाता है, मैं अंत में UIViewAnimationTransitionCurlDown या अगले UITableView प्रदर्शित करने के समान कुछ उपयोग करना चाहता हूं।एक UIViewController में एकाधिक UITableViews को संभालने का सबसे अच्छा तरीका?

सवाल यह है: क्या मुझे यह करने के लिए की आवश्यकता है, tableView प्रत्येक में एम्बेडेड है? क्या मुझे सिर्फ UITableView का एक उदाहरण बनाना चाहिए और ऊपर या नीचे बटन दबाए जाने पर इसका डेटा स्रोत बदलना चाहिए? यदि यह UITableView का केवल एक उदाहरण है, तो मैं स्क्रीन के उस हिस्से पर एक कर्ल संक्रमण कैसे प्राप्त करूं जो इसे नए tableView जैसा दिख रहा है?

उत्तर

5

क्यों प्रत्येक तालिका दृश्य अपने UITableViewController से संबंधित नहीं है, और इन्हें वर्तमान स्क्रीन के दृश्य नियंत्रक के भीतर घोंसला है? इस प्रकार स्क्रीन का व्यू कंट्रोलर अपने सबव्यूज़ को स्वैप करने के लिए ज़िम्मेदार है, जिनमें से प्रत्येक में टेबल व्यू कंट्रोलर होता है जिसमें उनके डेटा को दिखाने के लिए आवश्यक तर्क होता है।

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

+0

आप एक दृश्य नियंत्रक को दूसरे के साथ कैसे घोंसला करेंगे? मैं सबव्यू और सभी जोड़ना समझता हूं, लेकिन एक uitableviewcontroller? – randombits

+1

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

+1

हाँ, मूल रूप से आपकी दृश्यडिडलोड विधि बस शीर्षTableController = [[MyTopTableController alloc] init] जैसी कुछ कर सकती है; topTableController.view = self.topTableView; topTableController.delegate = स्वयं; (या एक निब फ़ाइल में कुछ ऐसा ही करें) ... इसे पहले से देखा गया ऐसा लगता है कि एकाधिक नियंत्रकों के लिए एक नियंत्रक/डीएस के रूप में एक नियंत्रक का उपयोग करने की बजाय प्रति तालिका एक नियंत्रक का उपयोग करना आसान है। आप ऐसा कर सकते हैं क्योंकि प्रतिनिधि विधियां UITableView पर पॉइंटर में गुजरती हैं, जिन्हें आप() या स्विच() पर कर सकते हैं, लेकिन यह एकाधिक "उप-नियंत्रक" का उपयोग करने के लिए एक क्लीनर डिज़ाइन हो सकता है – Nimrod