为UIBarButtonItem添加/删除EventHandler

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

 UIBarButtonItem logoutButton = new UIBarButtonItem (UIBarButtonSystemItem.Stop, logoutButtonEventHandler); private void logoutButtonEventHandler(object sender, EventArgs args){ Console.WriteLine("Logout"); } 

事后可以删除EventHandler吗? 也许根本不使用EventHandler ,而是使用UIBarButtonItemAction / Target属性? 我没有find任何例子。 只有匿名方法一直在使用。

你是怎样做的?

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

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

之后使用-=语法将其删除:

  logoutButton.Clicked -= logoutButtonEventHandler; 

当你这样做的时候,要小心一些常见的陷阱 ,因为它们可能会导致内存泄漏。

UIBarButtonItem有Clicked事件,所以你可以订阅和取消订阅它。