2016-04-19 2 views
0

Пожалуйста, помогите мне понять, почему настольный просмотр перезагружается при запуске контроллера. Я настраиваю выход для таблицы через раскадровку и источник данных, делегат. Я не вызывал метод tableload reloadData. Итак, когда диспетчер представлений запускает «..numberOfRowsInSection» и другие вызовы делегатов табличного представления.UITableView перезагружается на контроллере представления отображения

+0

Когда метод, называемый awakeFromNib(), вы можете переопределить этот метод, чтобы задать что-либо –

+0

, как отображать представление viewcontroller? вы представляете ту же ссылку? или вы создаете новый объект viewcontroller каждый раз, когда вы его показываете? –

ответ

0

, как Apple, документы говорят:

UITableView переопределяет метод layoutSubviews из UIView так, что он называет reloadData только тогда, когда вы создаете новый экземпляр UITableView или при назначении нового источника данных. Перезагрузка вида таблицы очищает текущее состояние, включая текущий выбор. Однако, если вы явно вызываете reloadData, он очищает это состояние, и любой последующий прямой или косвенный вызов layoutSubviews не вызывает перезагрузку.

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/

Если вы действительно не нужно его перезаряжать, создать свой Tableview ленивым переменной и добавить его к виду programmaticaly, когда вам это нужно.

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