iOS 6引入了Embed Segue,允许在Storyboards中使用自定义容器控制器。有没有办法在iOS 5中复制这个功能呢?
iOS 6引入了Embed Segue,允许在Storyboards中使用自定义容器控制器。有没有办法在iOS 5中复制这个功能呢?
UIView
控件创建segue,因此无法从UIView
容器视图创建segue到子场景。因此,您只需要自己编写代码。
幸运的是,它只是那四行代码,可以参考来自View Controller Programming Guide中的添加子控制器。就我个人而言,我可能会稍微修改一下代码,使其定义在我的视图控制器中:
- (void) displayChildController:(UIViewController*)childController
inContainerView:(UIView *)containerView
{
[self addChildViewController:childController]; // 1
childController.view.frame = containerView.bounds; // 2
[containerView addSubview:childController.view];
[childController didMoveToParentViewController:self]; // 3
}
我曾经为改变一个场景中的活动子控制器编写过自定义segue,但它本质上只是上述参考文档中列出的代码的变体。但这不是关于嵌入segue的问题,因此在此并不相关。
- (void)perform
{
[self.sourceViewController addChildViewController:self.destinationViewController];
[[self.sourceViewController view] addSubview:[self.destinationViewController view]];
[self.destinationViewController didMoveToParentViewController:self.sourceViewController];
}