我有一个表视图,第7行onclick,我推另一个视图。然后当我使用pop回来时,tableview会在ios8中自动重新加载。它不会发生在ios 7上。
问题是没有调用0,1,2,3单元格的cellForRow和HeightForRow。因此,表格向上滚动第7行,并且不可见。可以看到9,10,11个细胞。
当我回到那个视野时,我希望桌子保持不变。
我将selectedIndex和滚动表保存到viewWillAppear中的特定索引。
[self.table_exhibitorProfile scrollToRowAtIndexPath:self.selectedIndexPath atScrollPosition:UITableViewScrollPositionNone animated:NO];
它显示了第7个细胞,但它的位置与它不同。它排在首位。
答案 0 :(得分:1)
除非你告诉它,否则它不应该重新加载。它不会自动在iOS 8中重新加载。
我能提出的唯一可能性是
您正在两个视图控制器中使用CoreData,NSFetchedResutsController和相同的managedObjectContext。如果第二个视图控制器中的managedObjectContext发生了某些变化,当您弹回时,fetchedResultsController将重新加载该表,或者
您在tableView.reloadData()
或viewWillAppear()
致电viewDidAppear()
。
答案 1 :(得分:0)
我遇到了同样的问题,这就是我修复它的方法:
根据Apple文档:
UITableView overrides the layoutSubviews method of UIView
so that it calls reloadData only when you create a new
instance of UITableView or when you assign a new data source.
在我的情况下,我将表格视图的dataSource
设置为viewWillDisappear:
中的nil并将其设置回self
中的viewWillAppear:
,从而导致数据重新加载。
'自动'当我将dataSource
作业移至viewDidLoad
希望这有帮助!