我的PenViewController具有三个标签和一个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;
        }
    }
}

最佳答案

容器视图只是一个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];
}

关于ios - 如何使嵌入式Segue响应用户操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24964427/

10-16 14:10