Почему мой взгляд не обновляется? - PullRequest
0 голосов
/ 30 июня 2011

Итак, у меня есть две панели поиска, пара кнопок и табличное представление под ними (да, все это) в одном представлении. И еще у меня есть панель навигации с кнопкой «назад».

Для определенной операции я удаляю все строки поиска, кнопки и отображаю только одну ячейку uitableview в своем представлении.

Если я нажму edit, я хочу перезагружать весь вид, не только tableView, но я хочу, чтобы вид имел панели поиска и кнопки и экран навигации.

Я сделал [self.view reloadInputViews] в IBAction кнопки edit. Управление идет сюда, но вид просто не перезагружается. Почему?

Ответы [ 3 ]

1 голос
/ 30 июня 2011

reloadInputViews специально используется для представлений, которые являются первыми ответчиками. Вероятно, self.view не первый респондент в то время. Но почему вы хотите сделать все это с помощью «reloadInputViews», было бы проще использовать: [self.view setNeedsLayout]?

0 голосов
/ 27 января 2013

Лучший способ справиться с обновлением состояния представления - это абстрагировать конфигурацию подпредставлений представления вашего UIViewController в пользовательский метод, который вы можете вызвать первоначально из viewDidLoad и снова как действие вашего UIbarButtonItem.

- (void)viewDidLoad {
    //Specific, non repeated view setup
    [self resetViewState];
}

- (void)resetViewState {
    //Repeatable view setup
}

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

Вы также можете переместить макет подпредставлений вашего UIViewController в viewWillLayoutSubviews, если вам нужно выполнить компоновку, снова это вызывается системой в разное время.

0 голосов
/ 30 июня 2011

Я не знаю, как сам получить ответ сразу после публикации его здесь, в StackOverflow. Извините за беспокойство, ребята (вздох!)

Я сделал [self viewDidLoad];

...