当我点击一个项目时,我有一个表格视图导航到详细视图。我要做的是从详细视图导航到同级详细视图(对于表中的另一个项目)而不返回父表视图。
例如,如果 table view 屏幕有许多属于这些类型的菜:
- 三明治
- 汤
- 沙拉
当我选择一个火腿三明治时,我会转到这道菜的详细视图。在这里我看到喜欢火腿三明治的人也喜欢鸡汤面和凯撒沙拉。
我想从火腿三明治转到鸡肉面条汤或凯撒沙拉的详细视图,而不用动画返回到表格视图。我怎样才能做到这一点?
当我点击一个项目时,我有一个表格视图导航到详细视图。我要做的是从详细视图导航到同级详细视图(对于表中的另一个项目)而不返回父表视图。
例如,如果 table view 屏幕有许多属于这些类型的菜:
当我选择一个火腿三明治时,我会转到这道菜的详细视图。在这里我看到喜欢火腿三明治的人也喜欢鸡汤面和凯撒沙拉。
我想从火腿三明治转到鸡肉面条汤或凯撒沙拉的详细视图,而不用动画返回到表格视图。我怎样才能做到这一点?
当您想要导航到下一个/上一个详细视图(我们称它们为同级详细视图)时,您只需弹出并推送新的控制器,并将动画标志设置为 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 控制器发送消息,并且该控制器将弹出并推送新的详细视图(一次调用)。