0

我有一个 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];

 }
}
4

2 回答 2

1

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

于 2012-05-07T20:17:36.767 回答
0

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

于 2012-05-08T19:53:03.167 回答