【发布时间】:2014-05-28 06:37:24
【问题描述】:
当我在 StoryBoard 中创建容器视图时,我对其设置了约束。然后我把嵌入segue放到我嵌入的UIViewController中。
如果我的嵌入式 ViewController 是 UITableViewController 它会自动排列它的视图。但是当它是 UIViewController 时,它会为自己设置一个标准大小的框架(0、0、320、568)。
我试图在我的根 VC viewDidLoad 中传递容器视图的值。但后来意识到我的嵌入式 VC 在调用根 VC viewDidLoad 之前实例化了自己。
这是我的代理控制器中实际嵌入的代码 - 然后根据情况切换到多个视图控制器之一。这是prepareForSegue方法中执行的代码:
[self addChildViewController:segue.destinationViewController];
UIView* destView = ((UIViewController *)segue.destinationViewController).view;
destView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
destView.frame = self.view.bounds;
[self.view addSubview:destView];
[segue.destinationViewController didMoveToParentViewController:self];
【问题讨论】:
-
请贴出你用来实例化嵌入式vc的代码
-
情节提要中嵌入式视图控制器的大小是多少?我说的是单独的视图控制器,而不是容器视图。
-
@jrturton 我为它设置了固定的模拟大小,所以在我的故事板中它的大小与我的容器视图相同
-
您添加的代码有点令人不安。您不应该在 prepareForSegue 中对目标视图控制器的视图做任何事情 - segue 会为您完成所有这些。
-
我没有看到任何问题。有什么问题?
标签: ios uiviewcontroller frame segue