2013-03-18 13 views
7

Uygulamamdaki bir görünümde NSNotificationCenter kullanarak bir diğerine bildirim göndermeye çalışıyorum.Xamarin NSNotificatioCenter: NSObject'in geçirilmesini nasıl sağlayabilirim?

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

ve benim yöntemi var: Yani benim hedef sınıfta aşağıdaki gibi benim gözlemci oluşturmak başka UIViewController gelen Şimdi

public void ChangeLeftSide (UIViewController vc) 
{ 
    Console.WriteLine ("Change left side is being called"); 
} 

şöyle bir bildirim yayınlayarak ediyorum:

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

Hedef sınıfımda gönderim bildirimimde iletilen denetleyiciye nasıl erişebilirim? IOS'ta çok ileriye doğru ama monoton (Xamarin) yolumu bulamıyorum (Xamarin) ...

cevap

0

, burada söz konusu yayınlanmıştır kodu üzerinde yapılması gereken değişiklikler şunlardır:

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 
} 

Ve gözlemci oluşturulur:

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

Artık yapabilirsiniz NSObject'i kontrol edin veya yazın ve onunla bir şey yapın! Bitti!

+1

Sadece aşağıya yazılan cevabı bulmak için bir yıl geçirmeniz çok eğlenceli :) – Injectios

6

AddObserver, bunu biraz farklı bir şekilde yapmak istersiniz. Aşağıdaki deneyin:

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

ve ChangeLeftSide yöntemin beyanı AddObserver beklediği Action<NSNotification> uyması için - size gerçek NSNotification nesneyi vererek. :

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

Yani PostNotificationName, sen Object özelliği aracılığıyla kendiniz NSNotification içinde alınabilir bildirim için UIViewController nesne ekleme yaparken. Ben cevap buldu

+0

Ah poop, düzenlemenizi görmediniz. – Luke

+0

Teşekkür ederim :) Kesinlikle benimkinden daha iyi bir ifadeye sahipsin! –