Ali*_*fai 20 iphone uitableview
我正在尝试让我的表格视图记住它的最后位置,以便在应用程序再次运行后,它将滚动到该位置.要做到这一点,在我的viewWillDisappear:
方法中,我得到第一个可见的行号并保存到NSUserDefaults
.然后在我的viewDidAppear中我尝试通过发送scrollToRowAtIndexPath
到表视图滚动到该行.但是我得到了NSRangeException
:
*** 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"];
}
Run Code Online (Sandbox Code Playgroud)
Wil*_*ust 53
在调用scrollToRowAtIndexPath之前重新加载TableView数据.
[contentTableView reloadData];
Run Code Online (Sandbox Code Playgroud)
小智 8
contentTableView可能尚未完成加载数据.
归档时间: |
|
查看次数: |
32659 次 |
最近记录: |