iPhone: UITableView становится невидимым после изменения отображаемых данных - PullRequest
1 голос
/ 13 апреля 2010

У меня есть приложение с TabBar, которое управляет несколькими представлениями. С одной стороны, я контролирую соединения с разными серверами. Каждый сервер предоставляет различный набор элементов. Я отображаю эти элементы в UITableView в другом представлении.

Проблема в том, что табличное представление в первый раз отображает ОК, но если я вернусь к первому представлению и изменим сервер, тем самым изменив список элементов, которые должны отображаться в табличном представлении, табличное представление по какой-то причине станет невидимым. Если я коснусь экрана в том месте, где он должен быть, он снова станет видимым.

Я создаю табличное представление вот так

  UITableView * aTableView = [[UITableView alloc] initWithFrame:CGRectMake(X,Y,Width,Height) style:UITableViewStyleGrouped];

  [[self view] addSubview:aTableView];

  aTableView.dataSource = self;

Я пытался вызвать reloadData и setNeedsDisplay в viewWillAppear из UIViewController, в котором находится это представление таблицы, но безуспешно.

Любой совет?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 апреля 2010

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

Я бы посмотрел код, в котором вы переключаете серверы, а также tableview:cellForRowAtIndexPath: Установите точку останова / журнал для активации после переключения серверов и посмотрите, какие данные источник данных предоставляет сразу после переключения серверов. Я думаю, вы найдете таблицу не имеет данных. Когда вы дотрагиваетесь до нее, таблица вызывает обновление, и к тому времени данные уже поступили.

0 голосов
/ 13 апреля 2010

Я не знаю, решит ли это вашу проблему или нет, но вам не хватает

aTableView.delegate = self;

или вы не вставили его сюда

...