0

別のViewControllerにセグエするUItableViewがあります。tableViewにセグエするUITapGestureRecognizerを使用しています。このセグエは機能しますが、最初に選択したテーブル行の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

テーブル ビューのコンテンツ オフセットを値に保存する必要があります。
float tableContentOffset;
その後、オフセットをそのフロートに保存します。最後に、テーブル ビューのコンテンツ オフセットを設定する必要がある場合は、
[self.tableView setContentOffset:CGPointMake(0,tableContentOffset) animation:YES];

于 2012-05-07T20:17:36.767 に答える
0

したがって、コードでCGPointを作成しました。ただし、作成はメソッドprepareForSegue内に存在していました。したがって、メソッドの外部のポイントにアクセスすることはできません。これに対する解決策は、ヘッダーファイルにCGPointを作成することです。
CGPoint tableContentOffest;
次に、prepareForSegueメソッドで、テーブルのオフセット値を設定するだけです。新しいCGPointを作成しないでください。
さらに、コードで[vc.tableView setContentOffset:_tableContentOffsetアニメーション:YES]; [vc.tableView setContentOffset:tableContentOffsetanimated:YES]で設定します。_tableContentOffsetではありません。これがお役に立てば幸いです。

于 2012-05-08T19:53:03.167 に答える