запускать анимацию при каждом открытии приложения - PullRequest
2 голосов
/ 14 ноября 2010

У меня есть анимация в viewDidLoad, которая запускается при первом запуске приложения. если вы выходите из приложения, а затем запускаете его снова, анимация не воспроизводится.

как бы мне заставить анимацию воспроизводиться каждый раз, когда приложение открывается,

спасибо за любую помощь

Ответы [ 4 ]

11 голосов
/ 14 ноября 2010

В iOS 4 нажатие кнопки «домой» не останавливает приложение, оно приостанавливает его. Когда приложение снова становится активным, публикуется UIApplicationDidBecomeActiveNotification. Зарегистрируйте это уведомление и запустите анимацию в вашем обработчике.

Редактировать: Добавлен код ниже.

Вот один из способов сделать это: заставить ваш контроллер представления стать наблюдателем UIApplicationDidBecomeActiveNotification в его методе viewWillAppear:.

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(performAnimation:) name:UIApplicationDidBecomeActiveNotification object:nil];
}

Отменить регистрацию для уведомления в методе viewDidDisappear: контроллера вашего представления.

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
}

Наконец, поместите код анимации в селектор, указанный при регистрации для получения уведомления.

- (void)performAnimation:(NSNotification *)aNotification {
    // Animation code.
}
2 голосов
/ 14 ноября 2010

Скорее всего, ваше приложение не выходит и не перезагружается.По умолчанию приложения на iOS 4 продолжают работать, когда пользователь «выходит» из приложения, и продолжают работу с того места, на котором они остановились при «перезапуске».

Посмотрите на applicationDidBecomeActive в делегате приложения.Вы можете запустить анимацию оттуда, когда приложение отключено.

2 голосов
/ 14 ноября 2010

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

Поместите анимацию в метод, подобный

applicationDidBecomeActive:

UIApplicationDelegate

1 голос
/ 14 ноября 2010

Как установить флаг в делегате приложения для управления этим поведением:

Установите его на YES, когда приложение выходит на передний план или становится активным (applicationWillEnterForeground:, applicationDidBecomeActive:)

Проверьте, установлен ли этот флаг NO в -viewWillAppear в вашем контроллере вида:

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
if(!delegate.animationPlayed) {
   //perform animation here...
   delegate.animationPlayed = YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...