यहां दो तरीके हैं जो आप कर सकते हैं।
1. अंततः उपलब्ध डेटा को वापस करने के लिए एक परिवर्तनीय मॉडल बनाएं। परिवर्तनों का निरीक्षण करने के लिए UICollectionReusableView के विरासत वर्ग में केवीओ का उपयोग करें और उपलब्ध होने पर नए डेटा के साथ हेडर व्यू अपडेट करें।
[model addObserver:headerView
forKeyPath:@"path_To_Header_Data_I_care_about"
options:(NSKeyValueObservingOptionNew |
NSKeyValueObservingOptionOld)
context:NULL];
तो हैडर ध्यान में रखते हुए श्रोता विधि को लागू
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
2. देखने के लिए अधिसूचना श्रोता जोड़ सकते हैं और एक सूचना पोस्ट जब डेटा को सफलतापूर्वक उपलब्ध आ गया है। नकारात्मकता यह है कि यह आवेदन व्यापक है और एक साफ डिजाइन नहीं है।
// place in shared header file
#define HEADER_DATA_AVAILABLE @"Header Data Available Notification Name"
// object can contain userData property which could hole data needed.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(headerDataAvailable:) name:HEADER_DATA_AVAILABLE object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:HEADER_DATA_AVAILABLE object:nil];
मैं KVO का उपयोग किया है, लेकिन मैं, डेटा के अपडेट के लिए बात सुनी है मेरी कस्टम हेडर वर्ग पर क्षेत्रों की स्थापना की, और उस पर setNeedsDisplay कहा जाता है, लेकिन कुछ भी नहीं बदला । मुझे हेडर को रीफ्रेश करने के लिए और अधिक परेशानी हो रही है, क्योंकि मैं आर्किटेक्टिंग के साथ इसे अपडेट करना चाहता हूं। – akaru
क्या आपने अवैध लेटआउट को कॉल करने का प्रयास किया है। क्या यह आपके हेडर को रीफ्रेश करता है? – Samuel
जो कि काम नहीं करता था। सबसे आसान स्तर पर – akaru