我正在尝试学习如何制作子视图控制器并面对问题:我为一些未知的重新生成的子视图控制器占据整个屏幕而不是我添加它的视图。 这是我的超级简单代码:
CVCChildViewController *childViewController =
[[self storyboard] instantiateViewControllerWithIdentifier:kVCIdentifier];
[self addChildViewController:childViewController];
[self.childView addSubview:childViewController.view];
[childViewController didMoveToParentViewController:self];
这是故事板屏幕:
White UIView(childView)是self.view的子视图。而且我的子视图控制器没有跨越这个childView边界。我怎么能这样做?
答案 0 :(得分:1)
在添加为子视图之前设置childViewController.view.bounds = self.childView.bounds
。
基本上你需要在将它添加为子视图之前设置childViewControllers视图的框架,否则它将采用其默认高度。
我希望这有帮助。
干杯
答案 1 :(得分:0)
为什么以编程方式执行此操作?在故事板中添加Container View
(而不是View
)并将CVCChildViewController
附加到其中。这应该可以解决问题。
要访问子控制器,只需提供相应的IBOutlet
。
答案 2 :(得分:0)
这是我的问题。对于子视图控制器,“从NIB调整视图”应取消选中。之后它将是正确的框架。 那是因为这个选项默认使viewController.view.frame等于applicationFrame。