MvvmCross ios UISegmentedControl显示不同的视图控制器

时间:2015-02-02 17:20:47

标签: ios mvvmcross uisegmentedcontrol

我需要根据UISegmentedControl中选择的内容显示两个不同的视图。我真的不知道从哪里开始。视图(控制器)应显示在UISegmentedControl下。

所以假设我有一个包含分段控件的MainView(Controller) 和两个视图Child1View(Controller)和Child2View(Controller)

我假设我需要在MainView(Controller)中使用两个MvxViewControllers(每个子节点一个),但是当我通过分段控件选择它时,我不确定如何实例化并显示它们。

我的MainViewModel具有显示子视图模型的命令(因为我使用选项卡有一个相当的Android实现),但是如何让它们在包含分段控件的MainView(Controller)中显示。在创建我的xib文件时,我无法在XCode中的UIViewController中放置UIVIewController。

请帮忙。

1 个答案:

答案 0 :(得分:0)

经过几个小时的尝试,这就是我做的事情

在我的MainView(Controller)中为每个视图控制器我需要实例化我调用CreateViewControllerFor来创建我的视图控制器

var child1ViewModelRequest = new MvxViewModelRequest(typeof(Child1ViewModel), null, null. null);
child1View = (Child1View) this.CreateViewControllerFor<Child1ViewModel>(child1ViewModelRequest );

为了显示子视图控制器,我添加了一个容器视图,该视图构成了要显示的视图控制器的区域,然后显示以下代码

currentViewController = (UIViewController)child1View;
this.AddChildViewController(currentViewController);
currentViewController.View.Frame = containerView.Bounds;
containerView.Add(currentViewController.View);

注意currentViewController和child1View是MainView(Controller)的成员变量