2010-11-14 70 views
2

我在第一次启动应用程序时运行viewDidLoad中的动画。如果你退出应用程序,然后再次启动动画不播放。每次打开应用程序时都运行动画

我怎么会去制作动画的每一个应用程序打开时播放,

感谢您的帮助

回答

11

在iOS 4的,按home键不会终止应用程序,它暂停它。当应用程序再次启用时,会发布UIApplicationDidBecomeActiveNotification。注册该通知并在处理程序中启动动画。

编辑:添加下面的代码。

以下是一种方法:让您的视图控制器成为UIApplicationDidBecomeActiveNotificationviewWillAppear:方法的观察者。

- (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]; 
} 

最后,将您的动画代码放入注册接收通知时指定的选择器中。

​​
+0

为我工作。感谢您的帮助和一个很好的解释。 – hanumanDev 2010-11-14 19:03:48

+0

我很乐意提供帮助。 – 2010-11-14 19:07:14

1

如何设置标志在你的应用程序委托,以控制这种行为:

将应用设置为YES nters前景或变得活跃(applicationWillEnterForeground:applicationDidBecomeActive:

检查该标志是在-viewWillAppearNO在您的视图控制器:

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
if(!delegate.animationPlayed) { 
    //perform animation here... 
    delegate.animationPlayed = YES; 
} 
2

很可能您的应用程序没有退出并重新加载。默认情况下,iOS 4应用程序在用户“退出”应用程序时继续运行,并在“重新启动”时继续停止。

看看应用程序委托中的applicationDidBecomeActive。当应用停用时,您可以从那里启动您的动画。

+1

詹姆斯的回答比我的好...... – TomSwift 2010-11-14 01:52:39

相关问题