【发布时间】:2014-07-25 21:00:31
【问题描述】:
我的 PenViewController 有三个标签和一个容器视图,这意味着我使用的是嵌入式 segue。至少根据我的理解,关于嵌入式 segue 的事情是,它们不像 push 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;
}
}
}
【问题讨论】:
-
你不能使用
sender知道哪个标签被点击了吗? -
可以使用
UITabBarController作为嵌入式控制器,隐藏标签栏,根据点击的标签设置标签控制器的selectedIndex -
@spassas 我不明白这个评论。 PenViewController 三个标签和标签下方的一个ContainerView。标签也不在导航控制器中:它们在 PenViewController 的正确主体中。这就是外观,它是一成不变的。我的 tabBar 和我的 navBar 已经很忙了。所以真的,不知何故,我需要嵌入 segue 来响应标签的点击。
-
“响应”我想你的意思是你想根据被点击的标签来改变嵌入式控制器。是这样吗,还是我误解了你的问题?
-
@reecon 发件人是什么?这是一个嵌入segue。即使我尝试从标签转移到容器,情节提要也不会为我提供转移选项。那么有没有一种不同的方法可以以某种方式告诉
prepareForSegue:sender:方法其中一个标签是发件人?我的意思是,严格来说,Container View是情节提要所关心的发送者,并且它不允许对容器随附的 ViewController 进行其他额外的 segue。
标签: ios objective-c uiviewcontroller segue uicontainerview