2013-03-18 6 views
7

मैं NSNotificationCenter का उपयोग करके अपने ऐप से किसी अन्य दृश्य में एक अधिसूचना पोस्ट करने का प्रयास कर रहा हूं। इस प्रकार तो मेरी गंतव्य कक्षा में मैं अपने पर्यवेक्षक बनाने के लिए:Xamarin NSNotificatioCenter: मैं एनएसओब्जेक्ट को कैसे पारित कर सकता हूं?

NSNotificationCenter.DefaultCenter.AddObserver ("ChangeLeftSide", delegate {ChangeLeftSide(null);}); 

और मैं अपने तरीके होते है:

public void ChangeLeftSide (UIViewController vc) 
{ 
    Console.WriteLine ("Change left side is being called"); 
} 
एक और UIViewController से

अब इस प्रकार मैं एक अधिसूचना पोस्टिंग कर रहा हूँ:

NSNotificationCenter.DefaultCenter.PostNotificationName("ChangeLeftSide", this); 

मैं अपने गंतव्य वर्ग में मेरी पोस्ट अधिसूचना में पारित दृश्य नियंत्रक का उपयोग कैसे कर सकता हूं? आईओएस में यह बहुत सीधी आगे है लेकिन मुझे मोनोचच (ज़ैमरिन) में अपना रास्ता नहीं मिल रहा है ...

उत्तर

0

मैं इस सवाल का जवाब मिल गया है, यहाँ परिवर्तन कोड मैं प्रश्न में पोस्ट पर किए जाने की जरूरत है कि कर रहे हैं:

public void ChangeLeftSide (NSNotification notification) 
{ 
    Console.WriteLine ("Change left side is being called"); 
    NSObject myObject = notification.Object; 
    // here you can do whatever operation you need to do on the object 
} 

और पर्यवेक्षक बनाया गया है कास्ट या टाइप एनएसओब्जेक्ट की जांच करें और इसके साथ कुछ भी करें! किया हुआ!

+1

बस मजाकिया आप उत्तर पोस्ट करने के लिए एक साल बिताते हैं जो नीचे पोस्ट किया गया है :) – Injectios

6

जब आप AddObserver, तो आप इसे थोड़ा अलग तरीके से करना चाहते हैं। आप वास्तविक NSNotification वस्तु दे रही है - Action<NSNotification>AddObserver से उम्मीद के अनुरूप

NSNotificationCenter.DefaultCenter.AddObserver ("ChangeLeftSide", ChangeLeftSide); 

और अपने ChangeLeftSide विधि की घोषणा: का अनुसरण करें। :

public void ChangeLeftSide(NSNotification notification) 
{ 
    Console.WriteLine("Change left side is being called by " + notification.Object.ToString()); 
} 

तो जब आप PostNotificationName, आप सूचना है, जो Object संपत्ति के माध्यम से अपने NSNotification में पुनः प्राप्त किया जा सकता है UIViewController वस्तु संलग्न कर रहे हैं। आप कर सकते हैं

NSNotificationCenter.DefaultCenter.AddObserver ("ChangeLeftSide", ChangeLeftSide); 

अब:

+0

आह पोप, आपका संपादन नहीं देखा। – Luke

+0

यद्यपि आपका धन्यवाद :) निश्चित रूप से आपके पास मुझसे बेहतर शब्द है! –

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

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