0

我的 PenViewController 有三个标签和一个容器视图,这意味着我正在使用嵌入式 segue。至少根据我的理解,关于嵌入式 segue 的事情是,它们不像 push segue 那样是由用户操作引起的。但是现在我需要我的容器视图在单击不同的标签时分别显示不同的子项。如何将该数据传递给容器视图?这是我的嵌入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;
        }
    }
}
4

1 回答 1

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];
}
于 2014-07-26T01:29:05.937 回答