UIViewControllerのタイトルが変更されたときに通知を受けようとしています。Key-Value UIViewControllerサブクラスでトリガしないことを確認しますか?
私はUIViewControllerサブクラスのタイトルにオブザーバーを追加しようとしましたが、決してトリガーされませんでした。これについて奇妙なのは、それがプレーンなUIViewControllerで動作するということです。私は何か間違っているのですか?
は、ここに私の問題(Xamarin.iOS C#)を説明するコードの例です:UIViewController
で
using System;
using UIKit;
using System.Collections.Generic;
namespace ObserverTests
{
public partial class ViewController : UIViewController
{
List<UIViewController> viewControllers = new List<UIViewController>();
public override void ViewDidLoad()
{
UIViewController controller1 = new UIViewController() { Title = "Controller1" };
UIViewController controller2 = new Test() { Title = "Controller2" };
this.viewControllers.Add(controller1);
this.viewControllers.Add(controller2);
foreach(UIViewController viewController in viewControllers)
{
viewController.AddObserver("title", Foundation.NSKeyValueObservingOptions.New, (changes) =>
{
Console.WriteLine(viewController.Title);
Console.WriteLine("Title Changed!");
});
}
controller1.Title = "TitleChanged1"; // Works
controller2.Title = "TitleChanged2"; // Fails
}
private class Test : UIViewController
{
}
}
}