2014-10-21 2 views
0

Я использую раскадровку. Как я помню (я работал с прошивкой 4, давно =)) каждый раз, когда появляется вид, вызываетКак позвонить viewWillAppear с раскадрой iOS7

-(void)viewWillAppear:(BOOL)Animated {} 

метод. Теперь этот метод не вызывает, если нажать кнопку «Домой» и снова запустить приложение.

Как это исправить?

Мне нужно обновить один UIView, если он появляется после домашнего нажатия.

+0

Фактически 'viewWillAppear' все еще ведет себя одинаково. Он срабатывает, когда появится представление ... в другом месте должна быть ошибка. –

+0

'viewWillAppear' является частью' UIViewController', а не 'UIView'. См. Мой ответ. – Fogmeister

ответ

0

Функция viewWillAppear не является частью UIView. Это часть UIViewController.

Он вызывается после того, как вид контроллера вида был загружен и непосредственно перед тем, как он начнет переход на экран.

Если вы создадите подкласс UIView и поместите эту функцию в него, он никогда не будет вызван, потому что он не должен быть.

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

Вы правы, что viewWillAppear не дозвонились, когда приложение возвращается из фона.

Если вы хотите обновить часть своего приложения, когда это произойдет, вы можете что-то сделать в AppDelegate.

Я бы рекомендовал не пытаться сохранять свойства и т. Д. В AppDelegate. Вы должны сделать что-то вроде этого ...

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 

    // just pass the message on. In your view you will need to add an observer for this notification 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"UpdateViewNotification" object:nil]; 
} 
+0

Хорошо, и как я могу вызвать свою функцию обновления для указанного вида и как поймать, если она появляется из фона? Способы AppDelegate? – Arthur

+0

@ Артур А я вижу. Я не совсем понял, что происходит с домашней кнопкой. Я обновлю. – Fogmeister

0

попробовать это, называют супер,

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
} 
Смежные вопросы