我在UITableview
中有一个UIPopovercontroller
的菜单,选中后会将父视图的UIScollView滚动到特定的框架。
它运作良好。
问题是如果你使用pageControl滚动框架我需要更新表格[_delegate returnPageNumber]
中的选定行,返回当前的pageControl.currentPage
没有错误,NSLog报告正确的页码:
scrollIndexPath is <NSIndexPath 0x1a3380> 2 indexes [0, 3]
但是正确的细胞没有突出......为什么????
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//[tableView reloadData];
int isPage = [_delegate returnPageNumber];
NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:(isPage) inSection:0];
NSLog(@"scrollIndexPath is %@",scrollIndexPath);
[tableView selectRowAtIndexPath:scrollIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
我尝试过前后放[tableView reloadData]
并在viewDidAppear中使用代码......没有任何作用
答案 0 :(得分:2)
尝试在[super viewWillAppear]
:
viewWillAppear
- (void)viewWillAppear:(BOOL)animated
{
NSIndexPath *selection = [self.tableView indexPathForSelectedRow];
[[self tableView] reloadData];
if (selection)
{
[[self tableView] selectRowAtIndexPath:selection animated:NO scrollPosition:UITableViewScrollPositionNone];
}
[super viewWillAppear:animated]; //Trick is calling super last in this case. Then you can retrieve previously selected row to --> NSIndexPath *selection
}
答案 1 :(得分:0)