2010-04-13 3 views
0

Я пытаюсь загрузить табличный вид из кеша очень быстро и появятся кэшированные данные в представлении таблицы. Затем я хочу загрузить новые данные, а затем перезагрузить таблицу. Прямо сейчас я загружаю новые данные в viewDidAppear, но перед тем, как он отображается, представление все еще обновляется. Любая идея, как я могу это сделать?Обновите UITableView после загрузки

+0

Так что я думаю, мой вопрос заключается в том, чтобы вызвать метод относится к классу асинхронно от своего делегата класса. – lavoy

ответ

0

Просто позвоните [tableView reloadData] после загрузки может сделать трюк. Это вызовет обновление ваших ячеек таблицы.

Чтобы загрузить новые данные, вы можете использовать Cocoa Streams, в частности асинхронный Socket Stream. В делегате потока вызовите reloadData, когда загрузка будет завершена.

+0

Я знаю, как это сделать, но мне нужно фактически перезагрузить данные из Интернета. Я думаю, что @paull на правильном пути, но я до сих пор не знаю, как это сделать в делегате. – lavoy

0

viewDidAppear не является хорошим местом для загрузки данных; он действительно предназначен для очистки после представления данных, поэтому я могу понять, почему вы его использовали. Вы должны запросить перезагрузку данных как можно раньше, например, в viewDidLoad или viewWillAppear (в зависимости от вашего повторного использования или других контроллеров вида).

Если вы выполняете асинхронные загрузки, которыми вы должны быть, поместите вызов reloadData в функцию обратного вызова делегата, когда данные будут завершены.

+0

Каким будет код для этого делегата? – lavoy

+0

Трудно сказать, потому что вы не сказали, как вы делаете скачивание. Но он должен использовать NSURLConnection. Код для обновления таблицы точно такой же, как и в журнале. –

+0

Я знаю, как вытащить данные из Интернета (NSURLConnection), и я знаю, как перезагрузить таблицу новыми или существующими данными ([tableView reloadData]). Мой вопрос заключается в том, как заставить его сделать это в фоновом режиме после запуска и после отображения моих кэшированных данных из предыдущего запуска. Я не уверен, как поместить эти части в делегат, чтобы загрузить асинхронно. – lavoy

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