2010-11-14 94 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

相關問題