在过去的几天里,我一直在试图找出一种绕过警告的方法:
mvx:警告:8.93 屏蔽了异常 MissingMethodException:在 /Developer/MonoTouch/Source/mono/mcs/ 中的 System.Activator.CreateInstance(System.Type 类型,布尔非公共)[0x00094] 中找不到类型 FCX.iOS.TimesheetView 的默认构造函数/Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Activator.cs:222 中的 System.Activator.CreateInstance(System.Type 类型)[0x00000] 中的 class/corlib/System/Activator.cs:326 Cirrious.MvvmCross.Touch.Views.MvxTouchViewsContainer.CreateView (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest 请求) [0x00000] 在 Cirrious.MvvmCross.Touch.Views.MvxCanCreateTouchViewExtensionRequestMethods.CreateViewControllerFor (IMvxCanCreateTouchView 视图, Cirrious.MvvmCross.ViewModels.MvxViewModel请求)[0x00000] in :0 at Cirrious .MvvmCross.Touch.Views.Presenters。MvxTouchViewPresenter.Show (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest 请求) [0x00000] in :0 at Cirrious.MvvmCross.Touch.Views.MvxTouchViewDispatcher+<>c__DisplayClass4.b__3 () [0x00000] in :0 at Cirrious.CrossCore.Core.MvxMainThreadDispatcher .ExceptionMaskedAction (System.Action 动作) [0x00000] in :0
看起来导航正在寻找这个构造函数:
public TimesheetView ()
{
}
当我希望它使用此构造函数时(用于情节提要):
public TimesheetView (IntPtr handle) : base (handle)
{
}
我一直在尝试将一个视图中的按钮绑定到以下 ICommand:
private MvxCommand _NewTimesheetCommand;
public ICommand NewTimesheetCommand
{
get
{
_NewTimesheetCommand = _NewTimesheetCommand ?? new MvxCommand(() => {
ShowViewModel<TimesheetViewModel>(new TimesheetViewModel.Parameters { Mode = TimesheetViewModel.ModeEnum.ADD });
});
return _NewTimesheetCommand;
}
}
在查看了许多 StackOverFlow 问题之后,我遇到了这个问题,但听起来使用故事板几乎需要我使用 segues(换句话说,没有办法使用 ICommand 来改变我的视图)。
我的主要问题:是否可以使用情节提要并使用视图模型更改视图?(而不是使用视图中的segues)