Как «обновить» UIView - PullRequest
0 голосов
/ 27 июля 2010

У меня есть данные, которые обновляются в modalViewController, и когда эти данные обновляются, родительский контроллер также должен обновить свои данные.Я попытался сделать [tableView reloadData];но он не работал должным образом, так как фактические значения массива не обновляются.Могу ли я перезагрузить контроллер, чтобы пользователь не видел анимацию?

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Вы обновляете данные из основного потока? Если это так, вам нужно вызвать метод reloadData, используя следующий метод:

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

Так что для tableView это будет что-то вроде:

[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

0 голосов
/ 27 июля 2010

Базовое представление может быть освобождено, пока отображается модальное представление, поэтому не следует пытаться изменить его напрямую.Вместо этого вы можете использовать метод viewWillAppear: на контроллере основного представления для выполнения любых необходимых обновлений.

Я не уверен, что вы имеете в виду, что "фактические значения массива не обновляются".То, как два контроллера представления обмениваются данными, во многом зависит от того, чего вы пытаетесь достичь.Если модальное представление используется только в одном месте, главный контроллер может получить доступ к его свойствам напрямую.Или, может быть, вы хотите, чтобы выделенный класс содержал состояние ... Опять же, зависит от контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...