В моем приложении я отображаю данные из онлайн-веб-службы в несколько UITableViews. Я добавил несколько способов обновления данных пользователем, но метод 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();
Этот код, конечно же, выполняется в отдельном потоке, который вызывается в основном потоке. В основном тот же код вызывается, когда пользователь запрашивает обновление (анимация воспроизводится, пока работает фоновый поток).