0

У меня есть приложение, которое сделано из «контроллера навигации» с «UITableViewController», которое содержит элемент навигации с полем поиска. В раскадровке панель поиска находится внутри TableView.reload cellView after performSelectorInBackground

Я запрашиваю XML с сервера, если я делаю это непосредственно в основном потоке, он очень медленный, но он работает, информация с сервера отображается на CellView с помощью «reloadData». Но когда я делаю это с помощью «performSelectorOnBackground», мне удалось получить данные, но я должен нажать кнопку «Отмена» на панели поиска, чтобы показать результат, который я только что спросил!

Я уже пробовал: «[self.tableView выполняетSelectorOnMainThread: @selector (reloadData) withObject: nil waitUntilDone: NO];" но это не меняет его. Хуже всего то, что когда я помещаю «NSLog» в «cellForRowAtIndexPath», он показывает содержимое массива. И «searchBarCancelButtonClicked» полностью пуст.

Извините, английский не является родным языком и благодарит миллиард раз за помощь!

EDIT 18/04/12: Теперь TableCellView правильно заполняется асинхронно, но возникает проблема. Когда запрос из XML готов, я могу увидеть его в ViewController моего текущего представления. Но я должен ввести еще одно письмо в searchBox, чтобы «нажать» предыдущий результат на мой tableViewCell. Теперь в моем текущем представлении я вызываю другой класс, который в другом потоке (dispatch_async) запрашивает другую функцию для синтаксического анализа XML и после этого я отправляю «NSNotification», поэтому мой текущий вид инициализирует мой NSMutableArray, который используется для заполнения формы. У кого-то есть идея о том, как обмануть его? Спасибо, миллиард раз!

ответ

0

После завершения анализа данных вы вызвали [tableview reloadData] ;. он заполнит ваши данные обновленным.

+0

Здравствуйте! Спасибо за ответ, но ситуация изменилась. Теперь TableViewCell заселяется, но есть проблема с освещением, я обновляю свой пост. Спасибо ;) – Charles33

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

  • Нет связанных вопросов^_^