【发布时间】:2014-01-29 23:52:13
【问题描述】:
我在 MVVMCross iOS: how to bind a command with Custom transition when switching to different View model 上遵循 Stuart 的建议
当我切换到使用派生自 MvxModalNavSupportTouchViewPresenter 的自定义演示者时,我的应用程序在 AppDelegate::FinishedLaunching 调用 .Start() 时崩溃(System.NullReferenceException:对象引用未设置为对象的实例):
IMvxAppStart startup = Mvx.Resolve<IMvxAppStart>();
startup.Start();
调用栈是:
0x7 in Cirrious.MvvmCross.Touch.Views.Presenters.MvxTouchViewPresenter.get_CurrentTopViewController C#
0x2 in Cirrious.MvvmCross.Touch.Views.Presenters.MvxTouchViewPresenter.PresentModalViewController C#
0x4E in Cirrious.MvvmCross.Touch.Views.Presenters.MvxModalNavSupportTouchViewPresenter.Show C#
0xB in Cirrious.MvvmCross.Touch.Views.Presenters.MvxTouchViewPresenter.Show C#
0x28 in Cirrious.MvvmCross.Touch.Views.MvxTouchViewDispatcher. C#
0x28 in Cirrious.MvvmCross.Touch.Views.MvxTouchUIThreadDispatcher.RequestMainThreadAction C#
0x24 in Cirrious.MvvmCross.Touch.Views.MvxTouchViewDispatcher.ShowViewModel C#
0x30 in Cirrious.MvvmCross.ViewModels.MvxNavigatingObject.ShowViewModelImpl C#
0x6 in Cirrious.MvvmCross.ViewModels.MvxNavigatingObject.ShowViewModel C#
0xE in Cirrious.MvvmCross.ViewModels.MvxNavigatingObject.ShowViewModel<TestCustomPresenter.Core.ViewModels.FirstViewModel> C#
0x17 in Cirrious.MvvmCross.ViewModels.MvxAppStart<TestCustomPresenter.Core.ViewModels.FirstViewModel>.Start C#
> 0x3A in TestCustomPresenter.iOS.AppDelegate.FinishedLaunching at e:\Src\test\TestCustomPresenter\TestCustomPresenter.iOS\AppDelegate.cs:54 C#
0x9F in MonoTouch.UIKit.UIApplication.UIApplicationMain C#
0x52 in MonoTouch.UIKit.UIApplication.Main at /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38 C#
0x8 in TestCustomPresenter.iOS.Application.Main at e:\Src\test\TestCustomPresenter\TestCustomPresenter.iOS\Main.cs:23 C#
据我所知,目前没有顶视图控制器,但我不知道如何设置它,因为我遵循了 Stuart 回答中的所有步骤。 (我无法回复他的回答,因为我的 9 个代表太少了 :()
我已经上传了一个能重现错误的测试项目到http://www.cliffcawley.net/TestCustomPresenter.zip
我必须做些什么才能使示例正常工作并在您单击按钮时看到自定义转换?
【问题讨论】:
-
谢谢 - 如果可以的话,请在问题中包含代码或链接到可在线浏览的内容(例如 github) - 这使得在移动时更容易回答您的问题,代码消失的可能性较小并且更有可能这个问题在未来仍然有意义:)