我正在尝试创建一个自定义的后退按钮,除Clicked事件外,其他所有功能似乎都可以使用。
我有两个屏幕,我要之间。我们将它们称为Screen1和Screen2。
单击Screen1时,Screen1中有一个按钮将我带到Screen2。
以下代码是我尝试创建自定义背景的方式,该背景已放置在Screen1的ViewDidLoad和ViewWillDisappear中(以下是ViewWillDisappear中的内容)。这两个函数中使用的代码是以下代码的最后两行。
protected override void ViewWillDisappear(bool animated) {
base.ViewWillDisappear(animated);
this.NavigationController.SetNavigationBarHidden(false, animated);
UIBarButtonItem backBtn = new UIBarButtonItem("NewTitle", UIBarButtonItemStyle.Plain, delegate { Console.WriteLine("clicked"); });
this.NavigationItem.BackBarButtonItem = backBtn;
}
运行时,当我单击Screen2中的“后退”按钮时,控制台中不会出现“已单击”一词。我也尝试通过调用隐藏默认值
this.NavigationItem.SetHidesBackButton(true, false);
在创建按钮之前,但它没有任何影响。
任何建议将不胜感激!
最佳答案
有时默认的.ctor
无法按我们预期的那样工作。 IOW它调用init
选择器,但是它并不总是提供完全初始化的实例(大多数情况下会引发ObjectiveC异常)。
要确保尝试使用以下代码:
UIBarButtonItem backBtn = new UIBarButtonItem ("NewTitle", UIBarButtonItemStyle.Plain, delegate {
Console.WriteLine("clicked");
});
this.NavigationItem.BackBarButtonItem = backBtn;
如果可行,请填写http://bugzilla.xamarin.com/的错误报告,并添加指向该问题的链接。
关于ios - UIBarButtonItem的Clicked事件似乎在MonoTouch中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12133133/