3

プログラムのエラーに取り組んでいますが、解決策が見つからないようです。

ユーザーがカメラを開くと、UIImagePickerControllerが表示され、うまく機能します。彼がiPhoneのホームボタンを押したときに、NSMutableArrayからオブジェクトを削除したいのですが。

例:ユーザーがカメラを開きます。オブジェクトが別のクラスのNSMutableArrayに追加されます。ユーザーがホームボタンを押したオブジェクトを削除する必要があります。

アプリケーションがバックグラウンドに移動するときにremoveメソッドを呼び出すことができません。これは、バックグラウンドロケーションサービスの配列に他のオブジェクトを残す必要があるためです。

ホームボタンを押したとき、またはUIImagePickerがホームボタンイベントによって自動的に閉じたときにイベントをキャッチする方法はありますか?

4

2 に答える 2

2

通知を投稿する必要があります。appDelegateメソッドの場合:

 - (void)applicationDidEnterBackground:(UIApplication *)application
 {
   [[NSNotificationCenter defaultCenter] postNotificationName:@"objectRemover" object:nil];
 }

次に、ViewControllerとそのviewDidLoadメソッドでUIImagePickerControllerを開きましたか

-(void)viewDidLoad
{
 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(removeObject) name:@"objectRemover" object:nil];
}

ホームボタンが押されたときに呼び出されるオブジェクトを削除する場合は、ViewControllerにセレクターメソッドを追加します。

-(void)objectRemover
{
   // Your code remove object from array
}
于 2012-05-24T09:26:42.060 に答える
0

... AppDelegate.mクラスには、次のメソッドが役立ちます。

- (void)applicationWillResignActive:(UIApplication *)application {
- (void)applicationDidEnterBackground:(UIApplication *)application {
- (void)applicationWillTerminate:(UIApplication *)application {
于 2012-05-24T09:27:29.773 に答える