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

Ios 如何使嵌入式segue响应用户操作,ios,objective-c,uiviewcontroller,segue,uicontainerview,Ios,Objective C,Uiviewcontroller,Segue,Uicontainerview,我的PenViewController有三个标签和一个容器视图,这意味着我使用的是嵌入式segue。关于嵌入式segue,至少据我所知,它们不像推式segue那样是由用户行为引起的。但现在我需要我的容器视图在单击不同标签时分别显示不同的子级。如何将该数据传递到容器视图?这是我的博客 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToS

我的PenViewController有三个标签和一个容器视图,这意味着我使用的是嵌入式segue。关于嵌入式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;
        }
    }
}

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

您不能使用
发送方
来知道单击了哪个标签吗?您可以使用
UIAbbarController
作为嵌入式控制器,隐藏选项卡栏,并根据标签设置选项卡控制器的
selectedIndex
tapped@spassas我不明白这个评论。PenViewController包含三个标签和标签下方的ContainerView。此外,标签不在导航控制器中:它们位于PenViewController的适当主体中。这就是它的外观,它是固定在石头上的。我的选项卡栏和导航栏已经很忙了。所以,不知何故,我真的需要嵌入式控制器来响应标签的点击。通过“响应”,我想你的意思是你想根据点击的标签来更改嵌入式控制器。是这样,还是我误解了你的问题?@reecon什么发件人?这是一个嵌入式程序。即使我尝试从标签到容器进行分段,故事板也不会为我提供分段选项。那么,是否有其他方法可以告诉
prepareforsgue:sender:
方法其中一个标签就是发送者?我的意思是,严格地说,
容器视图
是故事板关心的发送者,它不允许对容器附带的ViewController进行其他附加的segue。