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 回答