我确信这是一个直接的应用程序,但不确定最好的方法是什么(这是全新的)。我有一个带有UITableViewController的导航控制器(都在UITabViewController中运行)。
当用户点击一行时,App会进入详细视图。现在我尝试链接左右滑动手势以导航到上一个和下一个记录。但是在详细视图中执行此操作的正确方法是什么,最简单的方法是将链接返回到我的TableViewController?
一个相关的问题是如何将“下拉”链接到与导航控制器的“后退”按钮相同的操作。
我希望上述内容有道理。提前感谢一百万!
我有一些与我喜欢的方式有关的东西,但它非常笨拙。 当调用DetailView时,我将参数传递给'self'和当前'selectedRow'。然后在进行滑动时,我在tabelViewController上调用函数'moveToNextRecord'(提供指针)并将selectedRow作为参数。在tableViewController中,我然后调用selectRowAtIndexPath和didSelectRowAtIndexPath。
-(void)moveToNextRecord:(NSIndexPath*) selectedRow{
//[self.navigationController popViewControllerAnimated:YES];
//NSIndexPath *selectedRow = [self.tableView indexPathForSelectedRow];
NSUInteger row = selectedRow.row;
NSUInteger section = selectedRow.section;
++row;
if(row >= [self.tableView numberOfRowsInSection:selectedRow.section])
{
row = 0;
++section;
if(section >= [self.tableView numberOfSections])
{
row = 0;
section = 0;
}
}
[self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section] animated:YES scrollPosition:UITableViewScrollPositionMiddle];
[self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section]];
}
这似乎有效,但问题是下一条记录是在前一条记录之后插入的。这意味着后退按钮将我带回到上一个记录而不是返回到表格视图。所以我想我应该告诉ViewController我不想堆叠它们,但基本上我要回去然后选择下一行,同时直接从一个detailView到下一个显示动画。这有道理吗?
([self.navigationController popViewControllerAnimated:YES]因为第一部小说似乎不起作用,因为它没有正确的流程。)
答案 0 :(得分:0)
从详细视图中,一旦识别出手势,请致电:
[self.navigationController popViewControllerAnimated:YES];
这将导航回来。
答案 1 :(得分:0)
我正在向一个PageControl解决方案迈进,因为它是一个非常改进的用户体验,因为页面实际上在用户滑动的同时移动。根据上述建议,我需要覆盖“后退”按钮,并手动填充ViewController堆栈,以便在进行正确滑动时允许从左向右转换(并且仅在滑动完成时发生)