2011-06-28 38 views
0

私は、次のhierrachyとアプリしている:ボタンを押すとAppDelegateにタスクがない場合、バックグラウンドでタスクを終了するにはどうすればよいですか?

- Tab bar controller: 
    - Table view controller -> Some buttons 
    - Table view controller -> Some buttons 

、ユーザーは、1〜10秒(インターネット接続に依存する)の間待つ必要があります。タスクが完了するまで、ユーザーはアプリを終了し、戻ったときにダウンロードしたコンテンツを見ることができるはずです。

私はそれがI have to implement applicationDidEnterBackground()であることを認識しています。私はガイドを読んだことがあるが、私が理解していないことは、データが別のビューコントローラにあるので、それをアプリケーションデリゲートにどのように渡すのだろうか?アプリケーションデリゲートには、計算を完了するために必要なすべてのデータがありません。さらに、途中であれば、どのようにしてアプリケーションデリゲートに渡しますか(終了した作業を失うことなく)?

答えて

2

UIApplicationDidEnterBackgroundNotificationに登録し、VCでタスクを開始しますか?

+0

おおよそ私が投稿していた簡潔なバージョンです。アプリケーションデリゲートに何も渡す必要はありません。 http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.htmlに記載されている通知を確認してください(下部の「通知」セクションまでスクロールしてください)。あなたが必要とする限り、適切なものを聞くためにコントローラを登録してください。 – Tommy

+0

通知に関する知識が不足して申し訳ありません。だから私は自分の仕事をする前に、[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(theBigTask)name:UIApplicationDidEnterBackgroundNotification object:nil]と書いています。それはあなたが意味することですか? –

関連する問題