在选定的单元格行返回 TableView

Posted

技术标签:

【中文标题】在选定的单元格行返回 TableView【英文标题】:Segue back to TableView at selected cell row 【发布时间】:2012-05-07 20:13:28 【问题描述】:

我有一个 UItableView 可以连接到不同的视图控制器。我正在使用一个返回 tableView 的 UITapGestureRecognizer。这个segue有效,但我希望它在最初选择的表格行中重新回到tableView。我该如何做到这一点?

编辑:编辑后的代码

- (void)viewWillAppear:(BOOL)animated  

 appDelegate = [[UIApplication sharedApplication] delegate];
 NSLog(@"%@", NSStringFromCGPoint(appDelegate.testCGPoint));

 [self.tableView setContentOffset:appDelegate.testCGPoint animated:YES];


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

 if ([segue.identifier isEqualToString:@"ShowDetail"]) 

   appDelegate.testCGPoint = [self.tableView contentOffset];

 

【问题讨论】:

【参考方案1】:

您应该将表格视图的内容偏移量保存为一个值。 浮动表内容偏移量; 然后,将偏移量保存到该浮点数中。 最后,当需要设置table view的内容偏移量时, [self.tableView setContentOffset:CGPointMake(0,tableContentOffset) animated:YES];

【讨论】:

这段代码应该放在视图控制器的 viewWillAppear: 方法中。 我使用了 CGPoint 而不是 float,但它对我不起作用。虽然,我是新手,所以我可能在这里做错了不止一件事。请参阅上面的编辑代码。 请看我的第二个回答!您的问题可能在于 tableContentOffset 变量的访问!【参考方案2】:

因此,在您的代码中,您创建了一个 CGPoint。但是,创建存在于方法 prepareForSegue 中。因此,您无法访问方法之外的点!对此的解决方案是在头文件中创建 CGPoint。 CGPoint tableContentOffest; 然后在您的 prepareForSegue 方法中,您所要做的就是设置表的偏移值。不要创建新的 CGPoint。 此外,在您的代码 [vc.tableView setContentOffset:_tableContentOffset animated:YES];你会想用 [vc.tableView setContentOffset:tableContentOffset animated:YES];而不是 _tableContentOffset。 希望这有帮助!

【讨论】:

我必须在 ViewController 类中创建CGPoint tableContentOffset 吗?编译器无法识别 DetailViewController 中的变量。我在 ViewController 标头 @interface 中设置了 CGPoint tableContentOffset 好的,我现在有点工作了。我完全误解了self.tableView... 部分,现在我意识到我的detailViewController 中不需要任何代码。一切都设置在我的主 VC 中。但是,当我将 `CGPoint tableContentOffset 放入我的头文件中时,我无法让它工作。当视图重新出现时,它似乎正在重置或未设置。相反,我在 AppDelegate 中设置 CGPoint 并在我的 VC 中调用它。这似乎有效,但我不确定为什么我无法使用您的方法。 另外,它现在可以工作了,但是 setContentOffset 被延迟了。我再次编辑了上面的代码。感谢您的所有帮助。 修复了延迟。只需设置animated:NO

以上是关于在选定的单元格行返回 TableView的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Swift 4 调用 self.tableView.reload() 以减少单元格行数

为啥要处理单击 TableView Swift IOS 值得单元格行之前单击的行? [复制]

在tableView中选择多个单元格并将另一个tableView单元格中的选定单元格显示为标签?

self.tableView.indexPathForCell(cell) 返回错误的单元格?

从选定的单元格获取数据(TableView)

tableView 单元格的正常和选定状态的不同象形图