在另一个UIViewController中显示UIViewController

时间:2014-08-29 11:23:28

标签: ios objective-c uiview uiviewcontroller subview

我正在开发一个应用,其中UIViewController firstViewController )包含一些UILabels,一个UIButton和一个UIView subView )。 UIView应显示包含某些图层的UIViewController secondViewController )。我无法做到这一点。

我该怎么做才能在 firstViewController的 subView 中显示 secondViewController

3 个答案:

答案 0 :(得分:7)

您应该使用UIViewController包含或父/子视图控制器。您可以阅读详细信息here

最基本的版本是:

UIViewController *parentVC = ...
UIViewController *otherVC = ... // it's view will be added as subview

[parentVC addChildViewController:otherVC];
[parentVC.containerView addSubview:otherVC.view]; // containerView is a view where your child view controller should go
[otherVC didMoveToParentViewController:parentVC];

如果您只将其他视图控制器的视图添加为子视图,则子视图控制器将无法接收所有事件。例如,如果您使用此处建议的其他方法(仅将视图添加为子视图,仅此而已),则您不会将-viewDidAppear:消息(和其他人)发送到您的子视图控制器。

答案 1 :(得分:4)

您可以通过将另一个视图控制器的视图添加为视图中的子视图

来实现
SecondVC *aObjSecondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondVC"];
[self.view addSubview:aObjSecondVC.view]

答案 2 :(得分:4)

您可以使用以下行添加它:

[self.subView addSubView:secondViewController.view];