在父表视图的同级详细视图之间导航

Posted

技术标签:

【中文标题】在父表视图的同级详细视图之间导航【英文标题】:Navigate between sibling detail views of a parent table view 【发布时间】:2012-04-30 02:56:47 【问题描述】:

我有一个表格视图,当我点击一个项目时,它会导航到详细视图。 我要做的是从详细视图导航到同级详细视图(对于表中的另一个项目)而不返回父表视图。

例如,如果表视图屏幕中有许多属于这些类型的菜肴:

三明治 汤 沙拉

当我选择一个火腿三明治时,我会转到这道菜的详细视图。在这里我看到喜欢火腿三明治的人也喜欢鸡汤面和凯撒沙拉。

我想从火腿三明治转到鸡肉面条汤或凯撒沙拉的详细视图,而不用动画返回到表格视图。我该怎么做?

【问题讨论】:

【参考方案1】:

当您想要导航到下一个/上一个详细视图(我们称它们为同级详细视图)时,您只需弹出并推送新控制器并将动画标志设置为 FALSE


- (void)gotoAnotherDetailView

    // Just remove the current 
    [self.navigationController popViewControllerAnimated:FALSE];

    // Create a new 
    DetailViewController* newcontroller = [DetailViewController alloc] initWithDishType:anotherDish];
    [self.navigationController pushViewController:newcontroller animated:FALSE];

在此示例中,DetailViewController 只是一个虚拟控制器,您应该将其替换为您在代码中实例化控制器的方式。

正如我的旁注,Apple 建议使用委托模式来控制控制器的推送/弹出。这意味着控制器不会将自己从导航堆栈中弹出,而是会向父 tableview 控制器发送消息,并且该控制器将弹出并推送新的详细视图(一次调用)。

【讨论】:

以上是关于在父表视图的同级详细视图之间导航的主要内容,如果未能解决你的问题,请参考以下文章

内部另一个表视图的表视图行高

在视图之间导航时更改表视图的位置

通过子组件在父组件中反应切换视图功能

在视图控制器之间传递行选择

导航表视图时添加到超级视图的视图消失

管理容器视图控制器内同级视图控制器之间的交互