Add/remove UIBarButtonItem 的事件处理程序

Add/remove EventHandler for UIBarButtonItem

可以在构造函数中定义一个EventHandler

UIBarButtonItem logoutButton = new UIBarButtonItem (UIBarButtonSystemItem.Stop, logoutButtonEventHandler);

private void logoutButtonEventHandler(object sender, EventArgs args){
    Console.WriteLine("Logout");
}

之后是否可以删除 EventHandler?也许根本不使用 EventHandler 而是使用 Action/Target UIBarButtonItem? I don't find any examples. Only anonymous methods 的属性一直被使用。

你是怎么做到的?

UIBarButtonItem 有 Clicked event,因此您可以订阅和取消订阅它。

实例化您的对象,然后设置处理程序:

var logoutButton = new UIBarButtonItem (UIBarButtonSystemItem.Stop)
logoutButton.Clicked += logoutButtonEventHandler;

之后要删除它,请使用 -= 语法:

 logoutButton.Clicked -= logoutButtonEventHandler;

这样做时请注意 commom pitfalls,因为它们可能会导致内存泄漏。