Вы должны инициализировать источник таблицы в методе ViewDidLoad, а не в конструкторе.Этот метод вызывается, когда контроллер представления загружается, а затем каждый раз, когда представление контроллера необходимо заново создавать после предупреждения о памяти.
Я провел несколько тестов и получаю аналогичные результаты после предупреждения о памяти.Тем не менее, я получаю только пустое представление таблицы.Когда я снова устанавливаю источник таблицы в ViewWillAppear, таблица обычно заполняется данными.
Тот факт, что ваша реализация в ViewWillAppear не работает, заставляет меня думать, что метод даже не вызывается.Если это так, я предполагаю, что ваше табличное представление не создается заново, когда это необходимо.
Это может произойти при определенных обстоятельствах, когда вы используете контроллеры, представления которых не созданы из файла XIB.В этом случае вы должны создать представление в методе LoadView (без вызова base.LoadView ()):
public override void LoadView()
{
this.View = new UITableView(UIScreen.MainScreen.ApplicationFrame); //or something similar
}
У меня были похожие проблемы (представления таблиц, где они не создавались заново) со сложной иерархиейконтроллеры вкладок, которые содержали контроллеры навигации, которые содержали контроллеры представления и т. д. Проблемы были решены, когда я предоставил метод LoadView.
Я не догадываюсь;)