2010-07-21 2 views
4

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

- (void)applicationDidBecomeActive:(UIApplication *)application

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

UPDATE: My UITableView - это отдельный контроллер. Это на самом деле представлено следующим образом

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

Просто позвоните '[self.tableView reloadData]'. Работает ли это для вас? Что вы подразумеваете под ссылкой на текущий UITableView? – vodkhang

+0

Я думаю, что больше информации о том, как создается tableView, находится ли он в rootdelegate или отдельном контроллере? Это было бы полезно при предоставлении ответа –

+0

Обновлено мое сообщение, мой UITableView управляется отдельным контроллером –

ответ

30

следующий на ответ Оле выше

добавить это при инициализации 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]; 
} 
+0

Что происходит, когда это выполняется на чем-либо, кроме iPhone 4? –

+0

Возможно, вам понадобится сделать макрос, если еще для другой версии iphone – vodkhang

+0

Как определить, какая версия телефона работает? –

3

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

+0

Можете ли вы показать мне пример того, как я могу использовать UIApplicationDidBecomeActiveNotification в моем контроллере представления? –

0

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

- (void)RefreshTableView:(UITableView *)tableView { 
if(tableView != nil) 
    [tableView reloadData]; } 
Смежные вопросы