2012-04-15 6 views
8

に完了したことを呼び出していない:dismissviewcontrolleranimated完了これは私が持っているコードですuiimagepickercontroller

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


    [picker dismissViewControllerAnimated:YES completion:^(void){ 
     NSLog(@"Test"); 

    }]; 
} 

これは、モーダルビューコントローラを退けたが、完成引数を呼び出すことはありません。何か間違っているのですか?

答えて

17

無効完了ハンドラは、私が思い付くことができる唯一の可能な説明は、あなたのイメージピッカーがあるということです

[picker dismissViewControllerAnimated:YES completion:^{ 
     NSLog(@"Test"); 

    }]; 

....私は前にあなたの構文を見たことがない、シンプルな^{で満たされています他の手段によって却下され、委任されていないことになります(したがって、didFinishPickingMediaWithInfoメッセージは届きません)。もう1つの可能性は、その時点でのSDK内での失敗かもしれません。簡単なサンプルプロジェクトを実行して、両方の構文モデルでコンプリートブロックが期待どおりに実行されることを知っています。

+0

あなたが上記のように動作していなかったので、私は実際に無効にしました。私はそれを元に戻しましたが、それはまだ動作しません。 – Andrew

+0

ログの右側を使用していますか?一番右のボタンを選択する必要があります。 – CodaFi

+1

この構文と質問の構文は同等です。いずれかの '^ void(void){NSLog(@" Test "); } '、' ^(void){NSLog(@ "テスト"); } '、または'^{NSLog(@ "Test"); } 'はまったく同じブロックになります。 IOW、何も指定されていなければ、ブロックの戻り値の型とパラメータリストには 'void'が仮定されます。 –

関連する問題