0

我正在尝试学习如何制作子视图控制器并面对问题:我为某些未知原因制作的子视图控制器占据了整个屏幕,而不是我添加它的视图。这是我的超级简单代码:

CVCChildViewController *childViewController =
    [[self storyboard] instantiateViewControllerWithIdentifier:kVCIdentifier];
[self addChildViewController:childViewController];
[self.childView addSubview:childViewController.view];
[childViewController didMoveToParentViewController:self];

这是故事板屏幕:在此处输入图像描述

白色 UIView (childView) 是 self.view 的子视图。而且我希望子视图控制器不会越过这个 childView 界限。我怎么能这样做?

4

3 回答 3

1

childViewController.view.bounds = self.childView.bounds在添加为子视图之前设置您的。基本上,您需要在将 childViewControllers 视图添加为 subview 之前设置它的框架,否则它将采用默认高度。我希望这有帮助。干杯

于 2014-05-19T08:15:39.427 回答
0

为什么你以编程方式这样做?在情节提要中添加Container View(而不是View)并将您的附加CVCChildViewController到它。这应该可以解决问题。

要访问子控制器,只需提供相应IBOutlet的 .

在此处输入图像描述

于 2014-05-19T08:38:08.447 回答
0

在此处输入图像描述

这是我的问题。对于子视图控制器,应取消选中“从 NIB 调整视图大小”。之后它将具有正确的框架。那是因为这个选项使 viewController.view.frame 默认等于 applicationFrame。

于 2014-05-19T09:21:38.987 回答