2009-03-19 8 views
29

जब मेरे पास दृश्य दृश्य नियंत्रक के हिस्से के रूप में UITableView है, तो मैं इसे फिर से लोड कैसे कर सकता हूं ताकि डेटा जो मैं देख रहा हूं, नए डेटा में बदल जाए। बस रीलोड को कॉल करने से डेटा को रीफ्रेश नहीं लगता है जब तक कि मैं इसे स्क्रॉल नहीं करता।एक UITableView को फिर से लोड करने के लिए कैसे करें, जबकि मैं इसे देख रहा हूं

उत्तर

34

reloadData विधि को कॉल करने से विधि को विधि के रूप में जल्द ही डेटा रीफ्रेश किया जाता है। यह तालिका को स्क्रॉल करने की प्रतीक्षा नहीं करता है। reloadData पर कॉल करने से पहले सुनिश्चित करें कि डेटा स्रोत (सरणी या शब्दकोश या जहां भी आपने मूल्यों को सहेजा है) बदल दिया गया है।

+7

एक कस्टम तालिका दृश्य सेल के साथ काम करने के लिए प्रतीत नहीं होता। डेटा दृश्य तब तक नहीं बदलता जब तक कि तालिका दृश्य स्क्रॉल नहीं किया जाता है। शायद मेरे कस्टम टेबल दृश्य सेल विधि में एक बग है। – Genericrich

+1

मैं एक कस्टम सेल भी उपयोग करता हूं। मेरे लिए बहुत अच्छा काम करता है। आपने कोड में कुछ याद किया होगा। क्या आप कोड पोस्ट कर सकते हैं। हो सकता है कि हम कुछ – lostInTransit

+2

पा सकें यदि आप अपने दृश्य को डिज़ाइन करने के लिए एक निब-फ़ाइल का उपयोग कर रहे हैं, तो उस तालिका को कनेक्ट करना न भूलें जिसे आप अपने निब में तालिका में कोड में पुनः लोड करना चाहते हैं। यह आसानी से होता है क्योंकि आपको प्रतिनिधि और डेटासोर्स को भी कनेक्ट करने की आवश्यकता होती है। –

33

क्या आप मुख्य धागे से डेटा को रीफ्रेश कर रहे हैं? यदि हां, तो आप निम्न विधि का उपयोग कर reloadData विधि कॉल करने की जरूरत है: एक tableView के लिए

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

तो यह होगा:

[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

19

बस 2013 अद्यतन, आप भी होना चाहिए डेटा को फिर से लोड करने के लिए, बस के रूप में जब तक आप

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.tableView reloadData]; 
}); 

का उपयोग GCD भयानक है में सक्षम!

+0

है यह स्वीकार्य उत्तर होना चाहिए। यदि आपको किसी भी तरह की बातचीत के बिना यूआई को वास्तव में रीफ्रेश करने के लिए सरल रीलोडडाटा की उम्मीद है, तो यह करने का यह तरीका है .. – Markus

+0

क्या आप आगे बता सकते हैं कि इसे मुख्य धागे पर क्यों निष्पादित किया जाना चाहिए? – jchnxu

-5

निम्न कोड की सहायता से आप तालिका को फिर से लोड करते समय आपको लगता है कि देख:

[self.tableView reloadData]; 
+4

उन तरीकों को कॉल करने के लिए खराब अभ्यास – AlexeyVMP

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