ggo*_*d75 7 interface-builder uiviewcontroller uistoryboardsegue childviewcontroller container-view
要从代码创建两个视图控制器之间的父/子关系,基本上只需执行以下操作:
[self addChildViewController:childViewController];
[self.view addSubview:childViewController.view];
Run Code Online (Sandbox Code Playgroud)
其中self是父视图控制器.
但是,如果我想完全从Interface Builder创建相同的关系呢?
或者换句话说:有没有办法使用Interface Builder重新创建方法addChildViewController的行为?
我没有找到很多关于这方面的文档,这是一篇关于该主题的未解决的帖子:https://devforums.apple.com/message/455758#455758
如果没有正确设置addChildViewController关系,任何旋转方法都不会转发到我的子视图控制器,这是我的问题所在.
这就是我在IB中所做的:
图片中的第一个"View"对象是我的父视图控制器的视图,而突出显示的"View"是子视图控制器的视图("Item View Controller").

容器控制器还通过另外的IBOutlet保留其子实例:
@property (nonatomic, strong) IBOutlet ItemsViewController *itemsViewController;
Run Code Online (Sandbox Code Playgroud)
谢谢
更新1:如果我在容器控制器的viewDidLoad中手动设置父/子关系,则所有旋转方法都会正确转发给子项.
[self addChildViewController:self.itemsViewController];
Run Code Online (Sandbox Code Playgroud)
但我真的不知道这是否是正确的做法,因为我想用IB做所有事情.
更新2:感谢@micantox提示他使用对象库中的"容器视图",我已将我的xib文件转换为Storyboard,现在子视图控制器已添加到其父级,所以我没有必要使用addChildViewController从代码中手动添加它,并按预期转发旋转方法.
"容器视图"基本上实现了嵌入segue,仅支持iOS 6.
这是我的Storyboard更新的截图:

mic*_*tox 19
为子视图控制器创建容器视图的正确方法是使用对象库中的对象"容器视图".在View Controller的场景中拖动一个将为子视图控制器创建一个新场景,该场景可以与父视图控制器分开管理.
| 归档时间: |
|
| 查看次数: |
13323 次 |
| 最近记录: |