我在viewDidLoad中有一个动画,它在第一次启动应用程序时运行。如果你退出应用程序,然后再次启动它,动画就不会播放。
我将如何在每次打开应用程序时播放动画,
感谢您的帮助
答案 0 :(得分:11)
在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.
}
答案 1 :(得分:2)
将动画放在类似
的方法中applicationDidBecomeActive:
pplicationDelegate
答案 2 :(得分:2)
您的应用很可能不会退出并重新加载。默认情况下,iOS 4应用会在用户“退出”应用时继续运行,并在“重新启动”时继续停止。
在app代理中查看applicationDidBecomeActive。当应用程序停用时,您可以从那里开始动画。
答案 3 :(得分:1)
如何在应用程序委托中设置标志来控制此行为:
当应用进入前台或变为有效时(YES
,applicationWillEnterForeground:
)
applicationDidBecomeActive:
在视图控制器的NO
中检查此标记是否为-viewWillAppear
:
MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
if(!delegate.animationPlayed) {
//perform animation here...
delegate.animationPlayed = YES;
}