2010-04-22 15 views
19

मैं ऐसे ऐप में काम कर रहा हूं जहां मेरे पास UITableView में डेटा है। यह एक ड्रिल डाउन एप्लिकेशन की तरह है। उपयोगकर्ता एक पंक्ति पर क्लिक करेगा और अगले पृष्ठ पर UITableView में अधिक रिकॉर्ड दिखाएगा। लेकिन मेरे मामले में समस्या यह है कि मैं नहीं जानता कि कितने स्तर के उपयोगकर्ता ड्रिल कर सकते हैं। स्तरों की संख्या तय नहीं है। तो अब मैं व्यू कंट्रोलर प्रोग्रामेटिक रूप से बनाने और जोड़ने की सोच रहा हूं। क्या यह संभव है?? अगर हाँ कैसे? अग्रिम धन्यवाद।मैं प्रोग्रामिव रूप से UIViewController कैसे बना सकता हूं?

उत्तर

20
UIViewController *controller = [[UIViewController alloc] init]; 
controller.view = whateverViewYouHave; 

क्या आपके पास अपना स्वयं का व्यू कंट्रोलर है जिसे आपने कोड किया है? उस स्थिति में आपको शायद दृश्य संपत्ति को सेट करने की आवश्यकता नहीं है क्योंकि यह आईबी में सेट किया गया है यदि आपने यही उपयोग किया है। जब आपके पास नियंत्रक होता है तो आप उसे नेविगेशन नियंत्रक पर धक्का दे सकते हैं या इसे सामान्य रूप से देख सकते हैं।

+0

अभी मैं एक व्यू कंट्रोलर पर हूं और उपयोगकर्ता को नए व्यू कंट्रोलर पर निर्देशित करना चाहता हूं और टेबलव्यू – pankaj

+0

में डेटा प्रदर्शित करना चाहता हूं और हां, एक और चीज उपयोगकर्ता इस नए प्रोग्रामिक रूप से बनाए गए व्यू कंट्रोलर – pankaj

+2

से अगले स्तर तक भी आगे बढ़ सकता है फिर आप शायद आपका पहला व्यू कंट्रोलर एक यूएनएविगेशन कंट्रोलर होना चाहता है। – willcodejavaforfood

3

UIViewController हमेशा प्रोग्रामेटिक रूप से बनाए जाते हैं। ऐसा लगता है कि तुम सिर्फ दृश्य नियंत्रक के प्रत्येक स्तर के लिए एक ही कक्षा के लिए, उदा इस मामले में जरूरत है .:

//CoolViewController:UITableViewController 
//CoolViewController.m 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (!self.isAtTopLevel) { 
     CoolViewController *cvc = [[CoolViewController alloc] initWithRecord:[self.records objectAtIndex:indexPath.row]]; 
     [self.navigationController pushViewController:cvc animated:YES]; 
     [cvc release]; 
    } else { 
     //do something else 
    } 
} 

, thingies पुनरावर्ती NSArray (अर्थात सरणियों की एक सरणी) के कुछ प्रकार होगा।

+0

उत्तर के लिए धन्यवाद ईमान, इस नए दृश्य नियंत्रक में मुझे रिकॉर्ड के साथ एक UITableview प्रदर्शित करने की आवश्यकता है। मैं यह कैसे करूँगा? – pankaj

+0

और हां, एक और चीज उपयोगकर्ता इस नए प्रोग्रामिक रूप से बनाए गए व्यू कंट्रोलर – pankaj

+0

(अपडेटेड उदाहरण) से अगले स्तर तक आगे बढ़ सकता है। इस उदाहरण में, प्रत्येक तालिका दृश्य नियंत्रक के पास रिकॉर्ड्स की एक सरणी होगी, जिनमें से प्रत्येक की एक सरणी होगी उप-अभिलेख (अगर मैं सही ढंग से डिजाइन को समझ नहीं पा रहा हूं तो मुझे सही करें)। तो आपके पास 'रिकॉर्ड' नामक एक कक्षा हो सकती है, जिसमें एक नाम (तालिका कक्ष पर प्रदर्शित) होगा और 'रिकॉर्ड' के 'एनएसएआरएआरए' - प्रत्येक तालिका दृश्य नियंत्रक उप-अभिलेखों की सरणी प्रदर्शित करेगा। आपकी पिछली टिप्पणी के अनुसार – shosti

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