在Xcode中的视图中加载视图控制器

时间:2015-06-19 07:29:46

标签: ios user-interface

我目前正在开发iPad应用程序。该应用程序只包含两个视图,但每个视图包含许多按钮和标签。当前,设置两个视图的布局。每个都设置在视图控制器中。我还有另一个视图控制器,它包含顶部的主菜单和一个大容器(UIView),我希望它能够保存我提到的两个视图。

我的问题是,有没有办法在视图中显示视图控制器?我想在单击主菜单中的按钮时在该容器内显示一个视图控制器(UIView),当我点击另一个按钮时显示另一个。如果我的计划不可行,那么请提出一些建议,以使同样的事情发挥作用。

非常感谢!

2 个答案:

答案 0 :(得分:9)

是的,你可以通过添加下面的UIViewController view来轻松完成..

_viewController=[self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.view addSubview:viewController.view];

只要您添加viewController.viewviewDidLoad内的ViewController方法就会被调用。

更新:根据UIViewController Class Reference,在另一个ViewController中添加UIViewController作为子视图时,您需要再添加两个步骤。

[self addChildViewController:viewcontroller];
[self.view addSubview:viewController.view];
[viewcontroller didMoveToParentViewController:self];

以上完成答案。

希望这会有所帮助。 欢呼声。

答案 1 :(得分:6)

Custom Container View Controllers正是您所需要的。如果使用Interface Builder和故事板 - 找到容器视图,将其拖到视图中并将包含的类设置为视图控制器。
container view in objects library

如果您不使用故事板或IB(我鼓励您这样做) - 请点击上面的链接并实施向您的视图控制器添加子视图控制器。 从未在没有addChildViewController:调用的情况下添加子视图,这可能会导致意外结果。通常,添加子视图控制器应按此顺序:

  1. 致电[self addChildViewController:childvc]
  2. 将子视图的VC视图添加为子视图[self.view addSubview:childvc.view]
  3. 致电[childvc didMoveToParentViewController:self]
  4. 在这种情况下,一切都会正常工作。