當我的應用程序,我有一個導航欄按鈕,允許用戶彈出回導航堆棧的頂部。這已經有一段時間了,一直工作得很好。但是,當我使用MT 4.0構建時,它會崩潰。應用程序崩潰處理導航欄按鈕事件
# in constructor
UIButton btn = UIButton.FromType(UIButtonType.Custom);
btn.Frame = new RectangleF(0,0,29,29);
btn.SetBackgroundImage(UIImage.FromFile("images/Home_button.png"),UIControlState.Normal);
btn.TouchDown += delegate {
this.NavigationController.PopToRootViewController(true);
};
UIBarButtonItem bar = new UIBarButtonItem(btn);
this.NavigationItem.RightBarButtonItem = bar;
該按鈕被正確地繪製,但是當按下按鈕時,應用程序崩潰。如果我改變委託來做一個Console.WriteLine()它仍然崩潰。
據我所知,這是工作,直到我安裝MT 4.0。
的異常就說明它崩潰時是
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object at (wrapper managed-to-native)
MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) at
MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00038] in
/Users/plasma/Source/iphone/monotouch/UIKit/UIApplication.cs:26 at
Application.Main (System.String[] args) [0x00000] in
/Users/jason/Projects/myproj/myproj/AppDelegate.cs:44
使用後退按鈕是否正常瀏覽。這是一個錯誤,還是我做錯了什麼?
啊哈!我的UIButton和UIBarButtonItem在本地範圍內。我讓他們成爲班級,而這似乎解決了問題!感謝您指點我正確的方向。 – Jason 2011-04-09 20:36:46