我有一个带有 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()" );
}
这一切都很好,(但是如果有更好的方法,请告诉我)问题来自第二个视图控制器(它与第一个基本相同,只是文本不同)。
当它被 RootViewController 切换到时:
this.Transition( firstViewController, secondViewController, 0.2, UIViewAnimationOptions.TransitionCrossDissolve, () => { }, (bool finished) => { secondViewController.DidMoveToParentViewController( this ); } );
它显示正常,但它的工具栏按钮在单击/触摸时不调用事件处理程序方法?
所有变量(loaderButton)都是类级别的。
有人知道为什么吗?还是我做错了什么?