2010-10-01 14 views
5

मैंने चीजों को आसान बनाने के लिए स्क्रीन डंप संलग्न किया है।आईफोन, UITableView reloadData क्यों काम नहीं कर रहा है?

मैंने डेटा आउटसोर्स और प्रतिनिधि के लिए अपने आउटलेट संलग्न किए हैं और मैंने अपने टेबल व्यू के लिए एक आउटलेट बनाया है, लेकिन पुनः लोडडेटा काम नहीं करता है?

आदर्श रूप से मैं दृश्य लोड होने के बाद केवल पुनः लोडडेटा को कॉल करना चाहता हूं?

alt text

उत्तर

6

सीधे अपने UITableView के लिए एक संपत्ति बनाएँ और अपने IBOutlet के रूप में संपत्ति का उपयोग करें, इवर का उपयोग कर जिस तरह से यह करने के लिए नहीं है। यह देखने के लिए कि आपका UITableView शून्य नहीं है, फिर से चीजों को हुक करें और इसे डीबग करें।

UITableView डेटासोर्स विधियों में एक ब्रेकपॉइंट डालें ताकि यह देखने के लिए कि क्या वे कॉल किए गए हैं, अगर वे हैं, तो जांचें कि क्या आपके लेनदेन में वास्तव में आइटम हैं।

यदि यह मदद नहीं करता है, तो आपको अधिक जानकारी प्रदान करनी होगी जैसे कि कौन से तरीकों को बुलाया जा रहा है और अधिक कोड।

+0

जांचें कि आपके सरणी में वास्तव में नया/अपडेट किया गया डेटा है जब आपका रीलोडडाटा कहा जाता है। –

+0

मैंने कुछ डीबगिंग किया है, सरणी अपडेट की गई है लेकिन दृश्य पर वापस आने पर सेलफॉररोएट इंडेक्सपैथ को कॉल नहीं किया जाता है। जैसा कि मैंने कहा, यह पहली बार चलता है जब दृश्य लोड होता है, लेकिन बाद में नहीं। – Jules

+0

आपको देखने के लिए हमें कोड स्निपेट पोस्ट करना होगा। –

2

यदि आपके UITableViewController का मुख्य दृश्य आपकी तालिका दृश्य है, तो आप IBOutlets का उपयोग करने से बच सकते हैं और सीधे अपने तालिका के तालिका को देख सकते हैं। इस तरह:

[self.tableView reloadData];

+0

ठीक है, मैं self.tableview में बदल गया हूं, मैंने जगह में पॉपर्टी, आउटलेट छोड़ा है, क्या मुझे आईबी में कुछ और हुक करने की ज़रूरत है? उन उदाहरणों को भी देखकर मैंने डेटासोर्स और प्रतिनिधि को देखा है, जैसा कि स्क्रीन डंप में दिखाया गया है, मैंने उन्हें झुका दिया है। – Jules

+0

फिर से आपके स्क्रीनशॉट को देखकर मैं देखता हूं कि आपके पास एक सामान्य UIView के अंदर UITableView है। इससे समस्याएं हो सकती हैं। मेरा सुझाव है कि आप अपने नियंत्रक को एक सामान्य UIViewController बनाने के लिए जो TableViewDelegates लागू करता है। व्यू आउटलेट मुख्य UIView पर सेट किया जाना चाहिए, और (जैसा आपने किया है) आउटलेट को आपके UITableView को इंगित करना चाहिए। अपने नियंत्रक को फिर से संदर्भ आउटलेट सेट करता है और पुनः प्रयास करें। – MaxFish

+0

यदि नई पंक्ति जोड़ दी गई है तो तालिका दृश्य को पुनः लोड किया जा रहा है, सुनिश्चित करें कि डेटा संपादन के बाद सही ढंग से दिखता है। – MaxFish

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