2011-12-26 13 views
63

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

simulator xcode

उत्तर

34

आप सामान्य दृश्य नियंत्रक के बजाय TableViewController उपयोग करने का प्रयास करना चाहते हैं?

+0

हालांकि मैं यह नहीं समझ सकता कि तालिका दृश्य को कैसे काम करना है, अगर यह मेरे स्क्रीनशॉट में एक बड़े दृश्य का सबव्यूव है। अगर मैं एक टेबल व्यू कंट्रोलर खींचता हूं और इसे पूरी स्क्रीन बनता हूं, जो काम करता है। लेकिन अगर मैं अन्य UI तत्वों को मिश्रण और मिलान करना चाहता हूं, तो मुझे कोई जानकारी नहीं है। मैं यह नहीं समझ सकता कि इसे टेबल व्यू कंट्रोलर पर कैसे लगाया जाए। – adum

+2

आप केवल तभी मिश्रण कर सकते हैं जब आप टेबल व्यू कंट्रोलर को कंटेनर व्यू के अंदर एम्बेड करते हैं जो आपके बड़े दृश्य का बच्चा है। – Andrew

+0

मुझे एक ही समस्या थी और ऐसा इसलिए था क्योंकि मेनू से UINavigationController खींचते समय डार्न जेनेरिक UIViewController को तालिका दृश्य के पैरेंट के रूप में डिफॉल्ट किया जाता है। डिफॉल्ट ऐप्पल द्वारा UITableViewController में लोड क्यों न करें? > _ < – PostCodeism

101

रे Wenderlich की वेबसाइट पर कहा गया है (इस पोस्ट में: Beginning Storyboards in iOS 5 Part 2, अनुभाग "काम पर जोड़ें प्लेयर स्क्रीन"): स्थिर कोशिकाओं के बारे में

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

एक ही मुद्दा था लेकिन इस बातें स्पष्ट करता है ...

+1

तो क्या UITableView में स्थिर कोशिकाओं का उपयोग करने का कोई तरीका है जो स्टोरीबोर्ड में UITableViewController में UITableView को एम्बेड किए बिना स्टोरीबोर्ड का उपयोग करके UIViewController के अंदर है?रे के हिस्से में जो मैंने पढ़ा है उससे – Das

+0

यह है कि यह चेक और अवैध कॉन्फ़िगरेशन अलर्ट के कारण रोका जा रहा है। तो हालांकि मुझे यकीन नहीं है कि मैं अपने पैसे पर शर्त लगाऊंगा: सं। – EeKay

+0

@ करेनएन .... स्थिर कोशिकाओं का उपयोग न करें। बस एक गतिशील UITableView का उपयोग करें और कंटेनर UIViewController को एक प्रतिनिधि बनाएं और उसके बाद UITableView को पॉप्युलेट करने के लिए जो भी स्थिर सरणी है, उसका उपयोग करें। – Das

192

जब आप स्थिर तालिका दृश्य का उपयोग निम्नलिखित किसी तरीके को लागू नहीं है:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
} 
+29

इसका मतलब है कि आपको केवल खाली विधियों को न डालने के लिए कार्यान्वयन को हटाना होगा :) – asdf

+0

हाँ, लेकिन मुझे आश्चर्य है कि एक्सकोड चेतावनी से कैसे छुटकारा पाना है जो अब कहता है कि कार्यान्वयन अपूर्ण है? – wcochran

+0

@wcochran मैं जांचता हूं कि क्या आप उन तरीकों को अपने इंटरफ़ेस में घोषित कर रहे हैं या यदि आपकी कक्षा UITableViewController का उप-वर्ग नहीं है। दोनों इस मामले में "अपूर्ण कार्यान्वयन" चेतावनियों का कारण बन सकते हैं। –

11

आप एक जोड़ सकते हैं कंटेनर उस कंटेनर में एक UITableViewController देखें और एम्बेड करें। फिर आप नए नियंत्रक के अंदर अपनी स्थिर कोशिकाओं का प्रबंधन कर सकते हैं।

+1

वाह! इसीलिए! मैंने अपने दिमाग को तोड़ने के लिए तोड़ दिया, क्यों पूर्व डेवलपर कंटेनर में UITableViewController जगह! – skywinder

1

मैं एक ही समस्या का सामना कर रहा था, और ठीक है कि मेरे लिए काम किया पुराना तरीका[[self navigationController] present...] के साथ स्थिर तालिका दृश्य ठीक से अपनी कोशिकाओं लोड हो रहा है में परिणाम नहीं था पेश performSegue. का उपयोग कर स्थिर UITableViewController उपवर्ग पेश करने के लिए किया गया था।

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