UiableViewController не перерисовал новый текстовый метку для ячейки после POPVEWVOWCONTROLLERANIMATE

StackOverflow https://stackoverflow.com/questions/2189520

Вопрос

У меня проблемы UiableViewController Не удается перерисовать обновленную ячейку после удаления ребенка.

Вот что происходит. После изменения данных в дочернем виде контроллер родительского представления перезагружает исходный массив данных и работает TablView ReloadData через поствость. После этого триггеры я использую popviewcontrollerranimated Чтобы вернуться к родительскому UiableViewController (это высказывает вид ребенка от стека и раскрывает контроллер один уровень вверх).

Тем не менее, мои обновленные данные не отображаются в контроллере родительского представления! Согласно отладчике, метка клетки была обновлена, но видимая этикетка не меняется. Однако, если я прокручиваю таблицу, на мгновение выдвинул обновленную яческую ячейку, когда он появляется в пояснице на этикетке обновляется!

Я также попробую звонить TablView ReloadData через ViewWillappear Но проблема все еще сохраняется.

Вот некоторая дополнительная информация, которая может быть полезной. У меня есть 3 взгляда, структурированные так:

1/  SettingsViewController : UITableViewController
2/  -- UserView : UITableViewController
3/  ---- UserDetailsView : UIViewController <UIActionSheetDelegate>

Я звоню UserDetailsView изнутри UserView следующим образом:

 UserDetailsView *userDetailsView = [[UserDetailsView alloc] init];
 [self.navigationController pushViewController:userDetailsView animated:YES];

Если я вернусь к максимальному контроллеру (SettingsViewController), а затем загрузите проблемный контроллер (Useview), все нарисовано правильно. Это только при возврате от дочернего представления о том, что эта проблема возникает.

Заранее спасибо за ваши предложения.

Это было полезно?

Решение

Наконец, сработал это через час сопряженного кодирования.

Через некоторое время мы заметили, что TableView всегда был нулевым Всякий раз, когда мы отправили сообщение ReloadData. Как вы можете знать в объекте C, NULL объекты принимают любое сообщение без жалобы.

Оказывается, что «кто-то» (Ahem, извините, это был я) определил эту строку в заголовом файле.

 UITableView *tableView;

Теперь вы умные печенье там узнают, что, потому что мы расширяем UitaleviewController, Нам не нужно сделать указатель на таблёс себе. Отказ По сути, я заменил унаследованный элемент TablView с нулевым объектом.

Тайна решена. Надеюсь, это поможет кому-то еще там! : D.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top