我有一个UITableViewController
派生类。在tableView:didSelectRowAtIndexPath:
中,我创建了一个详细视图控制器vc
并将其推送到[self.navigationController pushViewController: vc animated: YES];
。
在该详细视图上,我希望能够向左和向右滑动并转到上一个/下一个项目详细信息,或者返回到表格视图(如果它在第一个/最后一个项目上)。我使用[self.navigationController popViewControllerAnimated: YES];
实现了滑动和返回功能,但我不确定如何实现细节 - >细节分页。我考虑使用相同的pop,然后调用tableView:didSelectRowAtIndexPath:
,但跟踪和修改索引路径并跟踪tableView看起来像一个笨重的方式。还有更好的方法吗?
此外,当我弹出视图控制器时,它总是向右滑动。有没有办法让它向左侧滑动(在最后一个项目上模拟从右到左的滑动)?
答案 0 :(得分:2)
执行您尝试执行的操作的最佳方法是在UIPageViewController中显示您的详细信息内容。它是一个集合视图控制器,有点像表视图控制器。它有一个委托和数据源,就像表视图一样。它要求您为其提供显示内容页面的视图控制器。您可以将其设置为从页面到页面或页面卷曲进行滑动,还可以选择添加书脊。 Apple提供了一个名为PhotoScroller的示例应用程序,它展示了如何设置页面视图控制器来回滑动。它做的远不止这些,但您可以忽略它使用的内容视图控制器并替换您自己的详细视图控制器。
您将在表视图和页面视图控制器之间共享数据模型。