Ios UIBarButtonItem的单击事件在MonoTouch中似乎不起作用
我正在尝试创建一个自定义的后退按钮,除了单击的事件之外,其他一切似乎都正常工作 我有两个屏幕,我要去之间。我们将它们称为Screen1和Screen2。 Screen1中有一个按钮,单击该按钮可将我带到Screen2 下面的代码是我如何尝试创建自定义back的,它已被放置在Screen1的ViewDidLoad和ViewWillEnglishe中(以下是我在ViewWillEnglishe中的内容)。这两个函数中使用的代码是以下代码的最后两行Ios UIBarButtonItem的单击事件在MonoTouch中似乎不起作用,ios,xamarin.ios,uibarbuttonitem,Ios,Xamarin.ios,Uibarbuttonitem,我正在尝试创建一个自定义的后退按钮,除了单击的事件之外,其他一切似乎都正常工作 我有两个屏幕,我要去之间。我们将它们称为Screen1和Screen2。 Screen1中有一个按钮,单击该按钮可将我带到Screen2 下面的代码是我如何尝试创建自定义back的,它已被放置在Screen1的ViewDidLoad和ViewWillEnglishe中(以下是我在ViewWillEnglishe中的内容)。这两个函数中使用的代码是以下代码的最后两行 protected override void Vi
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;
}
运行时,当我在屏幕2中单击后退按钮时,控制台中永远不会出现“单击”一词。我还尝试通过调用
this.NavigationItem.SetHidesBackButton(true, false);
在创建按钮之前,但它不会影响任何内容
任何建议都将不胜感激 有时默认的
.ctor
不能像我们期望的那样工作。它调用init
选择器,但并不总是提供完全初始化的实例(大多数情况下会引发Objective异常)
请务必尝试使用以下代码:
UIBarButtonItem backBtn = new UIBarButtonItem ("NewTitle", UIBarButtonItemStyle.Plain, delegate {
Console.WriteLine("clicked");
});
this.NavigationItem.BackBarButtonItem = backBtn;
如果可以的话,请填写一份bug报告,并添加一个指向这个问题的链接。经过大量的研究和尝试,我发现了以下帖子:(注意,帖子中有一些粗话)。将变量BackBarButtonim设置为自定义按钮似乎不起作用;您可以更改文本,但似乎就是这样 然而,这里的另一篇帖子说,它可以在推送控制器中工作,尽管它似乎从未对我起作用: 要解决此问题,以下代码适用于我:
public override void ViewDidLoad() {
base.ViewDidLoad();
this.NavigationItem.SetHidesBackButton(true, false);
UIBarButtonItem backBtn = new UIBarButtonItem("Back", UIBarButtonItemStyle.Plain, delegate {
Console.WriteLine("clicked");
//one of the NavigationController pop functions to go back
});
this.NavigationItem.LeftBarButtonItem = backBtn;
}
不幸的是,这种方法也不起作用。“单击”一词没有出现。那么你的问题不是你粘贴的代码,而是其他地方。请编辑您的问题并包含有关如何设置的更多信息。