私は自分のテーブルビューに最後の位置を記憶させようとしているので、アプリを再実行した後にその位置にスクロールします。これを行うには、私のviewWillDisappear:
メソッドでは、私は最初の可視行番号を取得し、NSUserDefaults
に保存します。私のviewDidAppearでテーブルビューにscrollToRowAtIndexPath
を送信してその行にスクロールしようとします。しかし、私はNSRangeException
を得る:UITableView scrollToRowAtIndexPath
*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (0) beyond bounds (0).
任意のヘルプ高く評価しました。ここでは、コードは次のようになります。
- (void)viewDidAppear:(BOOL)animated
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults valueForKey:@"content_row"] != nil)
{
int rowToHighlight = [[userDefaults valueForKey:@"content_row"] intValue];
NSIndexPath * ndxPath= [NSIndexPath indexPathForRow:rowToHighlight inSection:0];
[contentTableView scrollToRowAtIndexPath:ndxPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
}
-(void) viewWillDisappear:(BOOL)animated
{
NSIndexPath *selectedRowPath = [[contentTableView indexPathsForVisibleRows] objectAtIndex:0];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:selectedRowPath.row forKey:@"content_row"];
}
scrollToRowAtIndexPathとNSIndexPathの作成を行うコードのビットを投稿できますか? – probablyCorey