Как обновить UITableView после того, как приложение снова становится активным? - PullRequest
4 голосов
/ 21 июля 2010

Я бы хотел, чтобы мой UITableView равнялся reloadData, когда мое приложение снова станет активным, после того как пользователь выйдет из приложения. Я знаю, что мне нужно реализовать (в моем приложении делегата):

- (void)applicationDidBecomeActive:(UIApplication *)application

но я не уверен, как ссылаться на текущий UITableView?

UPDATE: Мой UITableView - это отдельный контроллер. На самом деле это выглядит следующим образом

AppDelegate > Root View Controller > Pushes UITabBarController modally which has a UITableViewController

Ответы [ 3 ]

30 голосов
/ 21 июля 2010

ответ на вопрос Оле выше

добавить это при инициализации viewcontroller

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(becomeActive:)
    name:UIApplicationDidBecomeActiveNotification
    object:nil];

добавить фактический метод в контроллер

- (void)becomeActive:(NSNotification *)notification {
    NSLog(@"becoming active");
}

обязательно очистите уведомление

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}
3 голосов
/ 21 июля 2010

Если вы не можете получить доступ к контроллеру представления из делегата приложения, вы также можете заставить свой контроллер прослушивать уведомление UIApplicationDidBecomeActiveNotification.

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

вы можете создать свой класс с именем TableViewManager. там есть регистр UITableView, так что вы можете обновить любую таблицу, которую вы хотите. это так, в вашем TableViewManager классе у вас есть метод с именем

- (void)RefreshTableView:(UITableView *)tableView {
if(tableView != nil)
    [tableView reloadData]; }
...