В моем приложении я отображаю данные из онлайн-сервиса в несколько UITableView. Я добавил несколько способов обновления данных для пользователя, но метод TableView.ReloadData (), похоже, не работает.
Когда пользователь вызывает обновление, я получаю новый набор данных с сервера, передаю его экземпляру UITableViewSource, который присоединен к UITableViewController, а затем вызываю метод ReloadData (), который, к сожалению, фактически не перезагружает данные. Только после того, как я вернусь на главный экран и затем вернусь к табличному представлению (поскольку оно уже создано, я просто отображаю уже существующий экземпляр), новые данные отображаются в табличном представлении.
Что я делаю неправильно? Я попытался создать новый экземпляр UITableViewSource при обновлении данных, но это тоже не помогает.
Вот код для загрузки данных в табличное представление (я использую его для любого события, которое требует загрузки данных в него):
dataControl.GetList(Tables.UPDATES)); //gets data from the server and passes it to the SQL database
Source source = GetSource(theType.Name, theType, groups); //creates a new source loaded with the data
Updates.TableView.Source = source;
Updates.TableView.AllowsSelection = false;
Updates.TableView.ReloadData();
Этот код, конечно, выполняется в отдельном потоке, который вызывается в основном потоке.
По сути, тот же код вызывается, когда пользователь запрашивает обновление (анимация воспроизводится во время работы фонового потока).