如何使嵌入式segue响应用户操作

时间:2014-07-25 21:00:32

标签: ios objective-c uiviewcontroller segue uicontainerview

我的PenViewController有三个标签和一个容器视图,这意味着我使用的是嵌入式segue。关于嵌入式segue的事情,至少根据我的理解,它们不是由推送segue的方式引起的用户操作。但现在我需要我的容器视图分别在单击不同的标签时显示不同的子项。如何将该数据传递到Container View?这是我的嵌入式segue。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([segue.identifier isEqualToString:@"embedded_segue_to_container_vc"]) {
        if ([segue.destinationViewController isKindOfClass:[BCDPenDetailContainerViewController class]]) {
            BCDPenDetailContainerViewController *container = (BCDPenDetailContainerViewController *)segue.destinationViewController;
            container.details=self.details;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

容器视图只是一个UIView(引入了一些IB魔法),因此如果需要引用它以更改(或添加)子视图控制器,则可以为其创建IBOutlet。要添加另一个子视图控制器,请使用标准自定义容器控制器api,并将新控制器的视图添加到容器视图中,

-(IBAction)addNew:(id)sender {
    UIViewController *newVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NewVC"];
    [self addChildViewController:newVC];
    [newVC didMoveToParentViewController:self];
    newVC.view.frame = self.containerView.bounds; // containerView is the IBOutlet to the container view in the storyboard
    [self.containerView addSubview:newVC.view];
}