4

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

例如,如果 table view 屏幕有许多属于这些类型的菜:

  • 三明治
  • 沙拉

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

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

4

1 回答 1

3

当您想要导航到下一个/上一个详细视图(我们称它们为同级详细视图)时,您只需弹出并推送新的控制器,并将动画标志设置为 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 控制器发送消息,并且该控制器将弹出并推送新的详细视图(一次调用)。

于 2012-04-30T13:10:05.687 回答