2008-12-07 11 views
14

मैं आईफोन और ऐप्पल विकास के लिए नया हूं और अपने पहले आवेदन पर काम कर रहा हूं। तालिका में किसी आइटम का चयन होने पर यह केवल एक टेबल व्यू और "विस्तार दृश्य" के साथ सरल होता है।"विस्तार दृश्य" से लौटने के बाद मैं तालिका दृश्य को रीफ्रेश कैसे करूं?

मैं अपने "विस्तार दृश्य" में किए गए कुछ कार्यों के आधार पर तालिका दृश्य में सेल के पृष्ठभूमि रंग को बदलना चाहता हूं।

जब एप्लिकेशन प्रारंभ में लोड होता है तो मैं -cellForRowAtIndexPath: विधि में रंगों को कस्टमाइज़ करता हूं, लेकिन जब उपयोगकर्ता मेरे विवरण से वापस नेविगेट करता है तो उस फ़ंक्शन को कॉल नहीं किया जाता है, इसलिए मेरी तालिका दृश्य में रंग अपडेट नहीं होते हैं। इसे रीफ्रेश करने का एकमात्र तरीका अब एप्लिकेशन से बाहर निकलना और इसे फिर से शुरू करना है। (मैं NSUserDefaults के साथ अपने चयन को जारी रखता हूं।)

जाहिर है, मैं तालिका दृश्य को रीफ्रेश होने के लिए रीफ्रेश किया जाना चाहता हूं, लेकिन मुझे नहीं पता कि सेल का संदर्भ कैसे प्राप्त करें और किस विधि में ऐसा करने के लिए। मुझे लगता है कि इसे -viewDidAppear में जाना चाहिए, क्योंकि इसे सब कुछ दिखाया जाता है जिसे दृश्य दिखाया जाता है।

उत्तर

34

[tableView reloadData] का उपयोग करें - जो पंक्तियों के बावजूद टेबलव्यू चलाएगा और खुद को पुनर्निर्माण करेगा।

+0

यह तालिकादृश्य को रीफ्रेश नहीं करता है जैसे कि आप ऐप को पुनरारंभ करना चाहते हैं। पूरी तरह से ताज़ा क्या है जैसे कि ऐप शुरू किया गया था और टेबलव्यू ताजा बनाया गया था? – coolcool1994

9

आपको वास्तव में viewWillAppear: में ऐसा करना चाहिए।

इसके अलावा, आप visibleCells विधि का उपयोग कर तालिका दृश्य की दृश्यमान कक्ष प्राप्त कर सकते हैं। जिस तरह से टेबल दृश्य काम करते हैं, अन्य कोशिकाएं बिल्कुल मौजूद नहीं होती हैं - स्क्रॉलिंग प्रतिनिधि विधि को ट्रिगर करेगी और नई कोशिकाओं को बनाएगी (या यदि आप dequeue... का उपयोग करते हैं तो मौजूदा लोगों को हटा दें)।

1

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

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