2012-04-23 12 views
6

संभव डुप्लिकेट:
pass NSString variable to other class with NSNotificationगुजर अधिसूचना का उपयोग कर डेटा, iphone

मेरा प्रश्न है: क्या यह संभव है कि हम सूचना से postNotificationName और addObserver का उपयोग कर किसी अन्य दृश्य नियंत्रक करने के लिए एक से डेटा से पारित सकता है आईफोन

उत्तर

18

आप एपीआई कॉल

के उपयोगकर्ता डिक्शनरी तत्व में डेटा पास कर सकते हैं 0
NSDictionary *aDictionary = [[NSDictionary alloc] initWithObjectsAndKeys: 
          anObject, @"objectName", 
          anotherObject, @"objectId", 
          nil] autorelease]; 
[[NSNotificationCenter defaultCenter] postNotificationName:@"AnythingAtAll" object:nil userInfo:aDictionary]; 

आप जो भी सूचना देखते हैं उसमें से शब्दकोश को पुनर्प्राप्त कर सकते हैं। अधिसूचना पोस्ट करने से पहले पर्यवेक्षक जोड़ें।

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(anyAction:) name:@"AnythingAtAll" object:nil]; 

यह आपके init विधि या एक viewDidLoad विधि

-(void)anyAction:(NSNotification *)anote 
{ 
NSDictionary *dict = [anote userInfo]; 
AnyClass *objectIWantToTransfer = [dict objectForKey:@"objectName"]; 
} 

ध्यान दें कि आप dealloc विधि में एक पर्यवेक्षक के रूप में अपने वस्तु को निकाल देना चाहिए में हो सकता है।

[[NSNotificationCenter defaultCenter] removeObserver:self] 
+0

आपकी सहायता के लिए धन्यवाद। हालांकि, आप कैसे हैं कि आप ** addObserver ** पहले तो ** postNotificationName ** बाद में करें। [यहां] (http://stackoverflow.com/questions/10283014/can-not-catch-a-notification-in-iphone), मैं वही करता हूं जैसा आप करते हैं लेकिन ** चयनकर्ता ** नहीं है सब के बाद बुलाया – tranvutuan

+0

हां यह स्पष्ट करने के लिए कि आपको अधिसूचना पोस्ट करने से पहले पर्यवेक्षक को जोड़ने की आवश्यकता है। आमतौर पर यह init या viewdidload विधियों में होगा। –

+0

मुझे कुछ और उदाहरण चाहिए .. कृपया पोस्ट नोटिफिकेशन के बारे में कुछ और उदाहरण दें। – vijay

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