2014-12-31 5 views
1

У меня есть вид на стол, onclick 7-й строки, я нажимаю другой вид. Затем, когда я возвращаюсь с помощью pop, tableview автоматически перезагружается в ios8. Это не так. Ios 7.ios 8 tableview перезагружается автоматически, когда вид появляется после pop

Проблема в cellForRow и HeightForRow для 0,1,2,3 ячейки не вызывается. Следовательно, таблица прокручивает 7-ю строку вверх и не отображается. Видно 9,10,11 клеток.

Я хочу, чтобы таблица оставалась такой, какая была, когда я возвращаюсь к этому виду.

Я сохранил selectedIndex и прокрутил таблицу к определенному индексу в viewWillAppear.

[self.table_exhibitorProfile scrollToRowAtIndexPath:self.selectedIndexPath atScrollPosition:UITableViewScrollPositionNone animated:NO]; 

В нем показана 7-я ячейка, но ее положение не такое же, как и было. Это вверху.

+0

Вы вызываете [tableView reloadData] в ViewDidAppear/ViewWillAppear? – Mrunal

+0

Нет. Я звоню. Он отлично работает в ios7. – Durgaprasad

+0

Да, я столкнулся с этой проблемой. Я заполняю таблицы строк из основных данных, но я не связываю их явно, просто используя основные данные, как если бы это был набор словарей или что-то еще. Однако, если я манипулирую основными данными (добавлять или удалять строки), это вызывает перезагрузку моего tableview. Не знаю, почему. –

ответ

1

Нельзя перезаряжать его, если вы не сообщите об этом. Это не автоматическая перезагрузка в iOS 8 для меня.

Единственные возможности, которые я могу придумать в том, что

  1. вы используете CoreData, в NSFetchedResutsController и тот же managedObjectContext в обоих контроллерах зрения. Если что-то меняется в managedObjectContext во втором контроллере представления, когда вы выскочить назад, fetchedResultsController будет перезагрузить таблицу или

  2. вы звоните tableView.reloadData() в viewWillAppear() или viewDidAppear().

+0

Я не использую данные ядра. строки таблицы имеют значения из локального массива. Следующий вид полностью раздельный. Я посылаю ему только ключ, и данные извлекаются из JSon. О viewWillAppear ans viewDidAppear, я перезаряжаю таблицу вызовов. – Durgaprasad

+0

Пробовал ли вы прокомментировать строку 'scrollToRowAtIndexPath:' и посмотреть, будет ли она по-прежнему автоматически перезагружаться?Это может быть беспорядок вверх ... – trevorj

+0

Да. Это я добавил позже. – Durgaprasad

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: и установите его на self в viewWillAppear:, что заставляет данные перезагружаться.

«возможность автоматического» перезарядка ушел, когда я переехал dataSource задание viewDidLoad

Надежда это помогает!

Смежные вопросы