Как вы перезагрузите UIView? - PullRequest
0 голосов
/ 13 апреля 2011

У меня есть UINavigationController, где пользователь может вернуться назад / четвертым.Когда пользователь возвращается, я хочу, чтобы UIView перезагрузился.(Я на самом деле использую OHGridView ).На моем ViewWillDisappear я делаю что-то вроде этого:

- (void)viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadOHGridView" object:self];
}

Поэтому, когда они возвращаются, он отправляет NSNotification в OHGridView, чтобы обновить свои данные.Он вызывается, но он получает ошибку Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DetailViewController reloadData]: unrecognized selector sent to instance 0x4b9e9f0

Вот как я настроил свой NSNotificationCenter (в моем DetailViewController):

- (void)viewDidLoad {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReloadGridNotification:) name:@"ReloadOHGridView" object:nil];
}

- (void)ReloadGridNotification:(NSNotification *)notification{

    [database executeNonQuery:@"DELETE * FROM images"];
    [items removeAllObjects];

    [self reloadData];
}

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

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

Coulton

1 Ответ

3 голосов
/ 13 апреля 2011

На самом деле, я не думаю, что это будет обновляться.reloadData не является именем документированного метода UIViewController, и вы, похоже, не реализовали его самостоятельно.Я не знаком с OHGridView, но, возможно, это объект, которому вы хотите отправить сообщение reloadData.

Таким образом, вы можете изменить наблюдателя, который вы установили, с selfк вашему экземпляру OHGridView, или вы можете реализовать метод в вашем контроллере представления с именем reloadData, который в свою очередь отправляет соответствующее сообщение перезагрузки вашему OHGridView.

...