我有一个UItableView,可以分割到不同的视图控制器。我正在使用UITapGestureRecognizer,它会分段回到tableView。这个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];
}
}
答案 0 :(得分:1)
您应该将表视图的内容偏移量保存为值。
float tableContentOffset;
然后,将偏移量保存到该浮点数中。
最后,当你需要设置表格视图的内容偏移时,
[self.tableView setContentOffset:CGPointMake(0,tableContentOffset)animated:YES];
答案 1 :(得分:0)
因此,在您的代码中,您已经创建了一个CGPoint。但是,创建存在于prepareForSegue方法中。因此,您无法访问方法之外的点!解决方案是在头文件中创建CGPoint。
CGPoint tableContentOffest;
然后在prepareForSegue方法中,您所要做的就是设置表的偏移值。不要创建新的CGPoint。
另外,在你的代码中[vc.tableView setContentOffset:_tableContentOffset animated:YES];你想要用[vc.tableView setContentOffset:tableContentOffset animated:YES]设置它;而不是_tableContentOffset。
希望这有帮助!