2015-06-17 51 views
3

我有一個顯示UITableView的MvxViewController。當用戶選擇一個項目'ShowViewModel'被調用並顯示一個新的視圖。帶Xamarin iOS的Mvvmcross,是否可以在ViewController中加載ViewController?

我的目標是重寫此視圖,以便新視圖在同一屏幕上的ViewContainer內呈現。我不知道如何去做這件事。

我會使用一個SplitViewController,但是我想要一個TabBar/NavigationBar拉伸整個屏幕。 SplitViewControllers必須設置爲RootNavigationController - 意味着NavigationBars只會出現在一個視圖中。

Mockup of UI

回答

1

爲新視圖中創建一個UIView並將其添加爲一個子視圖到父ViewContainer

1

我已經找到了解決的問題,這種性質的最好方法是創建一個區域服務。

區域服務只是一個保持字典的類。

當您創建一個UIViewController時,您可能希望使用它來呈現一個子視圖控制器,並使用名稱(例如DetailRegion)將其註冊到區域服務。

然後在您想要在該區域中呈現的UIViewController類中,有一些方法來標識要呈現的區域;也許是一個屬性。

然後您只需創建一個自定義演示器來解析給定區域名稱的UIViewController,並採取適當的操作來顯示視圖模型。

這可能聽起來很複雜,但我現在在一些項目中使用了這個模型,它使我的生活變得輕鬆很多。

感謝, 特里斯坦

+0

我意識到上面的方法可能不是必要的,它好像它應該有可能從一個的TabBar到SplitViewController導航。 'MySplitView mySplitView = new SplitView(); mySplitView.SetPrimaryView(mainView); controller.View = mySplitView.View;' 我的問題是在MVVMCross世界中設置它。目前,我循環訪問ViewControllers數組,並將視圖推送給每個ViewController。除了SplitViewController無法推送..所以我嘗試了這樣的事情: –

相關問題