弹出后,当视图出现时,ios 8 tableview会自动重新加载

时间:2014-12-31 06:44:12

标签: uitableview ios8

我有一个表视图,第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个细胞,但它的位置与它不同。它排在首位。

2 个答案:

答案 0 :(得分:1)

除非你告诉它,否则它不应该重新加载。它不会自动在iOS 8中重新加载。

我能提出的唯一可能性是

  1. 您正在两个视图控制器中使用CoreData,NSFetchedResutsController和相同的managedObjectContext。如果第二个视图控制器中的managedObjectContext发生了某些变化,当您弹回时,fetchedResultsController将重新加载该表,或者

  2. 您在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

时,重新加载消失了

希望这有帮助!