ios - 如何使用 SplitView 提示在 MvvmCross 中显示 View 的位置

标签 ios ipad xamarin.ios mvvmcross uisplitview

我的 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

然后,该请求将被传递到您的 UI 演示器(在其他框架中也称为“导航服务”),然后每个平台上的演示器中的自定义代码可以决定如何处理这些“演示”提示 - 例如它可以覆盖 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/

相关文章:

ios - 大型 SwiftUI 结构导致内存错误

iphone - 如何让iPad在 "2x"模式下使用@2x.png高分辨率图像

带有另一张图像的 Xamarin iOS 事件指示器

c# - 如何在 Monotouch 中创建多级表?

iphone - MonoTouch - 有人用过这个吗?

ios - 卡在 "Developer Rejected"上,我无法上传新的二进制文件

ios - 根据预期的字符创建字符串

ios - UITextView 和 UILabel swift 排成一行

ios - 在 New iPad retina 上播放高分辨率视频 (2048x1536)

iphone - 如何在具有视网膜显示图形的 iPad 上显示 iPhone 应用程序?