Как перезагрузить данные? - PullRequest
1 голос
/ 20 марта 2011

Я не тупой, и я знаю, как перезагрузить данные.Я нахожусь в сложной ситуации, когда у меня есть UIView внутри другого UIView с именем OHGridView.Я должен сохранить их имена одинаковыми.

С примером кода OHGridView обновление выглядело примерно так:

[(OHGridView *)self.view reloadData];

Но теперь, когда я добавил UIView, он больше неработает.

Любая помощь приветствуется!

Редактировать:

Code removed

1 Ответ

3 голосов
/ 20 марта 2011

NSNotificationCenter может быть тем, что вам нужно.Вы можете зарегистрироваться для событий (например, выполнить обновление), а затем публиковать эти события из любого места.Они идут в центр уведомлений, а затем в ваш класс / вид.Когда событие получено, вы просто делаете то, что нужно.

Документы находятся здесь:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html

Внутри OHGridView, который вы вызываете во время инициализации:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReloadNotification:) name:@"ReloadOHGridView" object:nil];

Затем просто определите метод:

- (void)ReloadNotification:(NSNotification *)notification
{
    [self reloadData];
}

Итак, когда вы хотите, чтобы произошло обновление, вы просто позвоните:

[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadOHGridView" object:self];

Когда вы освободитеOHGridView вы должны удалить наблюдателя:

[[NSNotificationCenter defaultCenter] removeObserver:self];
...