2

ユーザーが画像の選択を終了したときにアプリを別のビューに切り替えようとしていますが、ユーザーが画像の選択を終了すると、ピッカーが閉じて同じビューに戻ります。
これが私のコードです:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    [picker dismissModalViewControllerAnimated:YES];

    DrawingViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Drawing"];
    viewController.image.image = image;
    [self presentModalViewController:viewController animated:NO];
}
4

1 に答える 1

6

これは、ピッカー モーダル ビュー コントローラーをアニメーションで閉じて、新しいビュー コントローラーをすぐに表示するために発生します。前のビュー コントローラーが閉じられた後にのみ、新しいモーダル ビュー コントローラーを提示できます。解決策は、アニメーションなしでピッカー モーダルを閉じることです。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    [picker dismissModalViewControllerAnimated:NO];

    DrawingViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Drawing"];
    viewController.image.image = image;
    [self presentModalViewController:viewController animated:NO];
}

別の解決策 ( iOS 5 でのみ機能するdismissViewControllerAnimated: completion:) は、次のメソッドを使用することです。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
   [picker dismissViewControllerAnimated:YES completion:^(){
        DrawingViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Drawing"];
        viewController.image.image = image;
        [self presentModalViewController:viewController animated:NO];
    }];


}
于 2012-05-22T10:16:14.297 に答える