为 UIBarButtonItem 添加/删除 EventHandler

Posted

技术标签:

【中文标题】为 UIBarButtonItem 添加/删除 EventHandler【英文标题】:Add/remove EventHandler for UIBarButtonItem 【发布时间】:2015-08-19 14:05:16 【问题描述】:

可以在构造函数中定义EventHandler

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

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

之后是否可以删除EventHandler?也许根本不使用EventHandler,而是使用UIBarButtonItemAction/Target 属性?我没有找到任何例子。始终只使用anonymous methods。

你是怎么做到的?

【问题讨论】:

【参考方案1】:

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

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

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

 logoutButton.Clicked -= logoutButtonEventHandler;

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于为 UIBarButtonItem 添加/删除 EventHandler的主要内容,如果未能解决你的问题,请参考以下文章

uibarbuttonitem tint 颜色不是白色,当我将它设置为

删除 iOS UIBarButtonItem 的标题文本

如何在 UINavigationController 中为所有视图控制器添加 UiBarButtonItem

如何在IOS中重新加载UIBarButtonItem

为啥 UIBarButtonItem 默认是禁用的?

UIBarButtonItem导航栏添加按钮