Tôi đang cố gắng làm cho chế độ xem bảng của mình nhớ vị trí cuối cùng của nó, để sau khi ứng dụng được chạy lại, nó sẽ cuộn đến vị trí đó. để làm điều này, theo phương pháp viewWillDisappear:
của tôi, tôi nhận được số hàng có thể nhìn thấy đầu tiên và lưu nó vào NSUserDefaults
. sau đó trong viewDidAppear của tôi, tôi cố gắng cuộn đến hàng đó bằng cách gửi scrollToRowAtIndexPath
đến chế độ xem bảng. Tuy nhiên tôi nhận được một NSRangeException
:UITableView scrollToRowAtIndexPath
*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (0) beyond bounds (0).
bất kỳ sự giúp đỡ đánh giá cao. Đây là mã:
- (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"];
}
Bạn có thể đăng bit mã để tạo scrollToRowAtIndexPath và NSIndexPath không? – probablyCorey