为啥没有调用第二个单点触控视图控制器工具栏按钮事件处理程序

Posted

技术标签:

【中文标题】为啥没有调用第二个单点触控视图控制器工具栏按钮事件处理程序【英文标题】:Why does a 2nd monotouch viewcontrollers toolbar buttons eventhandler not get called为什么没有调用第二个单点触控视图控制器工具栏按钮事件处理程序 【发布时间】:2012-10-02 09:21:32 【问题描述】:

我有一个带有 RootViewController 的 monotouch 项目,它初始化加载视图控制器:-

this.AddChildViewController( secondViewController );
this.AddChildViewController( firstViewController );
View.AddSubview( firstViewController.View  );
firstViewController.DidMoveToParentViewController( this );

每个 viewController 都包含一个工具栏,其按钮添加如下:

loaderButton  = new MonoTouch.UIKit.UIBarButtonItem( UIBarButtonSystemItem.Action, loaderClickHandler );

closeButton   = new MonoTouch.UIKit.UIBarButtonItem( "Close", UIBarButtonItemStyle.Done, new EventHandler( closeClickHandler ) );

loaderClickHandler 只是:

private void loaderClickHandler( System.Object sender, System.EventArgs e )

  System.Console.WriteLine( "loaderClickHandler()" );

这一切都很好,(但是如果有更好的方法,请告诉我) 问题出在 secondViewController (与第一个基本相同,只是文本不同)。

当它被 RootViewController 切换到时:

this.Transition( firstViewController, secondViewController, 0.2, UIViewAnimationOptions.TransitionCrossDissolve, () =>   , (bool finished) =>  secondViewController.DidMoveToParentViewController( this );  );

它显示正常,但它的工具栏按钮在单击/触摸时不调用事件处理程序方法? 所有变量(loaderButton)都是类级别的。

有人知道为什么吗?还是我做错了什么?

【问题讨论】:

【参考方案1】:

DOH!

在任何其他项目之后添加工具栏时会有所帮助!

【讨论】:

以上是关于为啥没有调用第二个单点触控视图控制器工具栏按钮事件处理程序的主要内容,如果未能解决你的问题,请参考以下文章

为啥关闭视图控制器不会从内存中清除呈现的控制器?

从具有相同 ViewController 类的相同情节提要中调用第二个视图

如何在解除第二个控制器后调用第一个控制器中的函数

防止出现第二个模态视图?

如何从弹出视图中关闭第二个视图控制器

为啥我的 ViewController 在第二次调用后才发布,iOS ARC?