我的 MvvmCross 应用程序使用自定义演示器,该演示器在 Ipad 上运行时创建 SplitView。主控和详细信息都包含导航 Controller 。这工作得很好,只是我不知道如何提示系统我想要下一个 View 显示的位置。 我有几个 View ,有时应在详细 View 中显示,有时应在主视图中显示。如果在 iPhone 上运行,它们将显示在单个导航 Controller 中。
所以在 ViewModel 中我想提示在哪里放置下一个 View 。类似的东西
ShowViewModel(paramObject, ShowInMaster);
如果在 iPhone 上运行,ShowInMaster 将被忽略。
这可能吗,还是我可能做错了?
最佳答案
有一个可选的presentationBundle
您可以在大多数 ShowViewModel
中使用的参数覆盖 - 请参阅 https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxNavigatingObject.cs#L39
您可以简单地从 Dictionary<string,string>()
创建 bundle - 例如你可以使用new MvxBundle(new Dictionary<string,string>() { { "ShowSplit":"true" } })
使用时,此演示文稿包将被放入MvxViewModelRequest
中- 在 public IDictionary<string, string> PresentationValues { get; set; }
成员(member) - 请参阅 https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxViewModelRequest.cs#L33
public override void Show(MvxViewModelRequest request)
检查演示提示内容,然后执行一些自定义 Split View显示(请参阅 https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Touch/Views/Presenters/MvxTouchViewPresenter.cs#L45 了解默认行为)
如果有帮助的话,一个简单的分割 View 显示(使用固定逻辑而不是表示提示)位于 http://mvvmcross.blogspot.com 的 N=24 中
关于ios - 如何使用 SplitView 提示在 MvvmCross 中显示 View 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22166869/