使用Xamarin和MVVMCross 6的iOS应用程序的主控详细信息页(SplitView)
我目前正在使用Xamarin和MVVMCross 6开发一个iOS应用程序,我想创建一个“SplitView” SplitView应该包含一个主控页和一个详细页。 在纵向模式下,仅显示母版页或详细信息页 如果设备的屏幕足够大,则应同时显示两个页面。在母版页上执行操作时,“详细信息”页应更改 如果有人能简单地解释一下实现这种拆分视图需要哪些故事板元素、视图、视图模型和导航元素,那就太好了。 请不要简单地链接到以下页面: 谢谢你,并致以最良好的问候 补充:到目前为止我做了什么。 我经常实现从一个页面到另一个页面的“正常”导航,没有问题。 我使用设计器在情节提要上放置了一个SplitViewController。然后我为每个控制器创建了一个.cs文件(例如RootViewController.cs) 视图如下所示:使用Xamarin和MVVMCross 6的iOS应用程序的主控详细信息页(SplitView),xamarin,xamarin.ios,mvvmcross,master-detail,splitview,Xamarin,Xamarin.ios,Mvvmcross,Master Detail,Splitview,我目前正在使用Xamarin和MVVMCross 6开发一个iOS应用程序,我想创建一个“SplitView” SplitView应该包含一个主控页和一个详细页。 在纵向模式下,仅显示母版页或详细信息页 如果设备的屏幕足够大,则应同时显示两个页面。在母版页上执行操作时,“详细信息”页应更改 如果有人能简单地解释一下实现这种拆分视图需要哪些故事板元素、视图、视图模型和导航元素,那就太好了。 请不要简单地链接到以下页面: 谢谢你,并致以最良好的问候 补充:到目前为止我做了什么。 我经常实现从一个页
[MvxFromStoryboard("LaunchScreen")]
public partial class MasterViewController : MvxViewController<MasterViewModel>
[MvxFromStoryboard(“启动屏幕”)]
公共部分类MasterViewController:MvxViewController
然后我创建了一个根视图、主视图和详图视图模型。
导航到RootViewModel时
await _navigationService.Navigate<RootViewModel>();
wait_navigationService.Navigate();
但是我得到了以下错误:
$exception{System.NullReferenceException:对象引用未设置为
一个对象的实例
MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel
(MvvmCross.ViewModels.MvxViewModelRequest请求,
MvvmCross.ViewModels.IMvxBundle保存状态,
MvvmCross.Navigation.EventArguments.IMVxNavigateEventArguments
导航[0x00000]英寸
D:\a\1\s\MvvmCross\ViewModels\MvxViewModelLoader.cs:62 at
MvvmCross.Platforms.Ios.Views.MvxViewControllerExtensions.LoadViewModel
(MvvmCross.Platforms.Ios.Views.IMvxIosView iosView)[0x0004d]中的
D:\a\1\s\MvvmCross\Platforms\Ios\Views\MvxViewControllerExtensions.cs:36
在MvvmCross.Views.MvxViewExtensions.OnViewCreate
(MvvmCross.Views.IMvxView视图,System.Func`1[TResult]
中的viewModelLoader)[0x00012]
D:\a\1\s\MvvmCross\Views\MvxViewExtensions.cs:24 at
MvvmCross.Platforms.Ios.Views.MvxViewControllerExtensions.OnViewCreate
(MvvmCross.Platforms.Ios.Views.IMvxIosView iosView)[0x00000]在
D:\a\1\s\MvvmCross\Platforms\Ios\Views\MvxViewControllerExtensions.cs:17
在
MvvmCross.Platforms.Ios.Views.MVXViewController适配器.HandleViewIDLoadCalled
(System.Object发送方,System.EventArgs e)[0x00000]位于
D:\a\1\s\MvvmCross\Platforms\Ios\Views\MvxViewControllerAdapter.cs:24
at(包装器委托调用)
.invoke_void_object_EventArgs(对象,System.EventArgs)位于
MvvmCross.Base.MvxDelegateExtensions.Raise(System.EventHandler
eventHandler,System.Object发送方)[0x00000]位于
D:\a\1\s\MvvmCross\Base\MvxDelegateExtensions.cs:13 at
MvvmCross.Platform.Ios.Views.Base.MvxEventSourceViewController.ViewDidLoad
()[0x00006]英寸
D:\a\1\s\MvvmCross\Platforms\Ios\Views\Base\MvxEventSourceViewController.cs:62
在MvvmCross.Platforms.Ios.Views.MvxViewController.ViewDidLoad()处
[0x00000]英寸
D:\a\1\s\MvvmCross\Platforms\Ios\Views\MvxViewController.cs:60 at
(包装器管理为本机)
ObjCRuntime.Messaging.void_objc_msgSend_IntPtr(IntPtr,IntPtr,IntPtr)在UIKit.UIWindow.set_RootViewController(UIKit.UIViewController 值)[0x0000d]英寸 /Library/Frameworks/Xamarin.iOS.framework/Versions/13.10.0.17/src/Xamarin.iOS/UIWindow.g.cs:394 在 MvvmCross.Platform.Ios.Presenters.MvxIosViewPresenter.SetWindowRootViewController (UIKit.UIViewController控制器, MvvmCross.Platform.Ios.Presenters.Attributes.MvxRootPresentationAttribute 中的属性[0x00025] D:\a\1\s\MvvmCross\Platforms\Ios\Presenters\MvxIosViewPresenter.cs:624 在 MvvmCross.Platform.Ios.Presenters.MvxIosViewPresenter.SetupWindowRootNavigation (UIKit.UIViewController视图控制器, MvvmCross.Platform.Ios.Presenters.Attributes.MvxRootPresentationAttribute 中的属性[0x00023] D:\a\1\s\MvvmCross\Platforms\Ios\Presenters\MvxIosViewPresenter.cs:260 在 MvvmCross.Platform.Ios.Presenters.MvxIosViewPresenter.ShowRootViewController (UIKit.UIViewController视图控制器, MvvmCross.Platform.Ios.Presenters.Attributes.MvxRootPresentationAttribute 属性,MvvmCross.ViewModels.MvxViewModelRequest请求)[0x00267] 在里面 D:\a\1\s\MvvmCross\Platforms\Ios\Presenters\MvxIosViewPresenter.cs:198 }System.NullReferenceException
谢谢大家,并致以最良好的问候。我投票将此问题作为离题题结束,因为“要求家庭作业帮助的问题必须包括您迄今为止为解决此问题所做工作的摘要,以及您解决此问题所遇到的困难的描述。”好的,说得好。我将完成我的步骤。太好了,我投票赞成现在重新开放,但你需要更多的投票。。。