2012-01-07 2 views
0

Это вопрос, который задал довольно много людей, особенно здесь, на StackOverflow.Перезагрузка UITableView из другого класса?

Перезагрузка данных в виде таблицы легко, [self.myTableView reloadData];, myTableView - это экземпляр моего UITableView, поскольку я использую UIViewController вместо UITableViewController.

Я хочу перезагрузить представление таблицы с другого контроллера представления после того, как я обновил данные (из Интернета). Данные содержатся в списке свойств. Я пытался использовать протоколы, уведомления и некоторые другие вещи, например, положить его в viewDidAppear:. Ничего не сработало для меня.

Это что-то, о чем я не думал, или я просто сделал некоторые из этих методов неправильно? Помощь очень ценится!

+0

Хорошо, отработал сам, наконец! – Jacob

+0

Какова была проблема? –

+0

Тот факт, что у меня были данные в списках свойств. Я просто использовал код для инициализации данных в виде таблицы, чтобы загрузить его снова, когда захочу. Это стало «перезагрузкой». – Jacob

ответ

0

Если вы хотите получить доступ к объекту UITableView, или просто о чем-нибудь еще в этом отношении, из другого класса, вы можете сделать его доступным с помощью свойства:

ClassA.h

@interface ClassA { 
    UITableView *tableView; 
} 
@property (nonatomic, readonly) UITableView *tableView; 
@end 

ClassB.m

- (void)reloadTableInOtherClass { 
    [classAVariable.tableView reloadData]; 
} 
0

Использование шаблона наблюдателя + уведомление это хороший способ. И чтобы ваш контроллер просмотра решил, когда перезагружать данные, также является хорошей практикой. Почему уведомление не работает. Вы использовали addOvserver:?

Смежные вопросы