2011-12-17 6 views
0

私は、ユーザがオンにしたときにいくつかの音楽を再生するビューコントローラにボタンをON/OFFしています。ユーザーがiPhoneのホームボタンをクリックしてアプリケーションを再起動すると、ボタンは「オン」に表示されますが、再生中の音楽はありません。そのため、ユーザーは再び音楽の再生を開始するためにON-OFF-ONを再度押す必要があります。フォアグラウンドとバックグラウンドのアプリケーション

誰もが、私はアプリがバックグラウンドに入ったときにOFFに設定し、ONに設定して音楽を再生できるように、それはこれらのアプリデリゲートにforground入ったとき、私は私のON/OFFビューコントローラのボタンを呼び出すことができる方法を知っていますか?

私はplistファイルに&の音楽状態applicationDidEnterBackgroundのボタンを書く必要があることを知っています。彼らは私のviewcontrollerで定義されているので、私はappdelegateからそれらのアクションにどのように得ることができるのか分からない。

同様に、アプリケーションがフォアグラウンドに入ると、私は保存されたplistファイルを読んでから、音楽とボタンの状態を再び設定します。ここでも、コントローラメソッドを代理人から呼び出す方法はわかりません。

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

    NSLog(@"Inside applicationDidEnterBackground"); 
} 

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

    NSLog(@"Inside applicationWillEnterForeground"); 

} 

答えて

0

可能な方法の1つは、アプリケーションデリゲートからビューコントローラにメッセージを送信して状態を保存または復元することです。その後、内部状態にアクセスできるView Controllerは、必要な保存および復元方法を実装できます。

アプリケーションデリゲートがアクティブビューコントローラへの参照を直接含んでいない場合、メッセージをチェーンの下に送信してルートビューコントローラに送信することができます。次に、各コントローラーは、途中で重要と考えられるものはすべて保存します。

0

あなたのビューコントローラも

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

TheresのあまりにDidEnterForegroundための通知にUIApplicationDidEnterBackgroundNotification通知にサブスクライブするだけです。

関連する問題