2014-03-04 23 views
2

我的MvvmCross應用程序使用自定義演示器,該演示器在Ipad上運行時創建SplitView。主控和細節都包含導航控制器。這工作正常,但我不知道如何提示系統,我希望下一個視圖顯示。 我有幾個意見,有時應該顯示在詳細信息視圖,有時在主人。如果在iPhone上運行,它們將顯示在單個導航控制器中。如何使用SplitView暗示在MvvmCross中顯示視圖的位置

所以在ViewModel中,我想暗示放置下一個視圖的位置。類似於

ShowViewModel(paramObject,ShowInMaster);

如果在iPhone上運行,ShowInMaster將被忽略。

這是可能的,或者我可能做這一切都是錯誤的?

回答

3

有一個可選的presentationBundle參數,您可以在大多數ShowViewModel覆蓋的使用 - 見https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxNavigatingObject.cs#L39

您可以從Dictionary<string,string>()只需創建一個包 - 例如你可以使用new MvxBundle(new Dictionary<string,string>() { { "ShowSplit":"true" } })

使用時,此演示文稿束將獲得放入MvxViewModelRequest - 在public IDictionary<string, string> PresentationValues { get; set; }成員 - 看https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxViewModelRequest.cs#L33

請求隨後會傳遞給你的用戶界面呈現(又名在「導航服務」其他框架) - 然後在每個平臺上的演示者中定製代碼可以決定如何處理這些「演示」提示 - 例如它可以覆蓋public override void Show(MvxViewModelRequest request)檢查演示文稿提示內容,並隨後做了一些自定義的拆分視圖顯示(見https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Touch/Views/Presenters/MvxTouchViewPresenter.cs#L45默認行爲)

如果有幫助,簡單的拆分視圖顯示(使用固定的邏輯,而不是呈現提示)是在N = 24的http://mvvmcross.blogspot.com

相關問題