我目前正在开发iPad应用程序。该应用程序只包含两个视图,但每个视图包含许多按钮和标签。当前,设置两个视图的布局。每个都设置在视图控制器中。我还有另一个视图控制器,它包含顶部的主菜单和一个大容器(UIView),我希望它能够保存我提到的两个视图。
我的问题是,有没有办法在视图中显示视图控制器?我想在单击主菜单中的按钮时在该容器内显示一个视图控制器(UIView),当我点击另一个按钮时显示另一个。如果我的计划不可行,那么请提出一些建议,以使同样的事情发挥作用。
非常感谢!
答案 0 :(得分:9)
是的,你可以通过添加下面的UIViewController view
来轻松完成..
_viewController=[self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.view addSubview:viewController.view];
只要您添加viewController.view
,viewDidLoad
内的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和故事板 - 找到容器视图,将其拖到视图中并将包含的类设置为视图控制器。
如果您不使用故事板或IB(我鼓励您这样做) - 请点击上面的链接并实施向您的视图控制器添加子视图控制器。 从未在没有addChildViewController:
调用的情况下添加子视图,这可能会导致意外结果。通常,添加子视图控制器应按此顺序:
[self addChildViewController:childvc]
[self.view addSubview:childvc.view]
[childvc didMoveToParentViewController:self]
在这种情况下,一切都会正常工作。