God*_*her 22 storyboard ios autolayout swift
我在VC中有一个全屏的containerView.如果我从一个故事板手动添加一个子容器到containerView做一个嵌入segue看起来很好:

但是如果我通过代码嵌入VC:
class BannerContainerVC: UIViewController {
@IBOutlet weak var container: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let vc = storyboard?.instantiateViewControllerWithIdentifier("test") as UIViewController
self.container.addSubview(vc.view)
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了超级奇怪的结果:

pba*_*sdf 62
您需要告诉您的BannerContainer视图控制器它有一个新的子控制器,并告诉Child它有一个父VC.这是在苹果文档描述这里.像这样:
[self addChildViewController:vc];
vc.view.frame = CGRectMake(0, 0, self.container.frame.size.width, self.container.frame.size.height);
[self.container addSubview:vc.view];
[vc didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
或者在Swift中:
self.addChildViewController(vc)
vc.view.frame = CGRectMake(0, 0, self.container.frame.size.width, self.container.frame.size.height);
self.container.addSubview(vc.view)
vc.didMoveToParentViewController(self)
Run Code Online (Sandbox Code Playgroud)
这确保了各种布局和触摸方法传递给子VC; 我怀疑你的布局问题可能是由于当前没有被调用的那些方法.
试图使用上面的答案但事实证明CGRectMake不再可用.
针对Swift 3进行了更新:
self.addChildViewController(vc)
vc.view.frame = CGRect(x: 0, y: 0, width: self.container.frame.size.width, height: self.container.frame.size.height)
self.container.addSubview(vc.view)
vc.didMoveToParentViewController(self)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38614 次 |
| 最近记录: |