2011-12-17 74 views
0

我的視圖控制器中有一個按鈕ON/OFF,當用戶打開它時播放一些音樂。現在,如果用戶點擊iPhone主頁按鈕並重新啓動我的應用程序,該按鈕顯示爲「開」,但沒有音樂播放。因此用戶必須再次打開ON-OFF-ON才能開始播放音樂。前景和背景中的應用程序

任何人都知道如何調用我的ON/OFF視圖控制器按鈕,以便在應用程序進入背景並將其設置爲ON時將其設置爲OFF,並在這些應用程序代表進入forground時播放音樂?

我知道我需要寫一個plist文件按鈕&音樂狀態applicationDidEnterBackground。我不知道如何從appdelegate獲得這些動作,因爲它們是在我的視圖控制器中定義的。

同樣,當應用程序進入前臺時,我將讀取保存的plist文件,然後再次設置音樂和按鈕的狀態。再次,我不知道如何從委託調用我的控制器方法。

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 

    NSLog(@"Inside applicationDidEnterBackground"); 
} 

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 

    NSLog(@"Inside applicationWillEnterForeground"); 

} 

回答

0

一種可能的方法是從應用程序代理向視圖控制器發送消息以保存或恢復狀態。然後,可以訪問其內部狀態的視圖控制器可以實現任何需要的保存和恢復方法。

如果應用程序委託沒有直接包含對活動視圖控制器的引用,它可以將消息沿着鏈發送到根視圖控制器,然後它可以向下一個視圖控制器發送消息等,每個控制器在下降時保存它認爲重要的任何東西。

0

所有你需要做的是訂閱UIApplicationDidEnterBackgroundNotification時通知您的視圖控制器

[[NSNotificationCenter defaultCenter] addObserver: self 
             selector: @selector(handleEnteredBackground:) 
              name: UIApplicationDidEnterBackgroundNotification 
              object: nil]; 

也Theres爲DidEnterForeground的通知了。