objective-c - 在 UIImagePickerController 之后切换 View

标签 objective-c ios uiimagepickercontroller

我试图让我的应用程序在用户完成选择图像时切换到另一个 View ,但发生的情况是当用户完成选择图像时,它关闭了选择器并返回到相同的 View 。
这是我的代码:

- (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];
}

最佳答案

发生这种情况是因为您使用动画关闭了选择器模态视图 Controller 并立即呈现新的 View Controller 。您只能在前一个 View Controller 被关闭后呈现一个新的模态视图 Controller 。 一个解决方案是在没有动画的情况下关闭选择器模式:

- (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];
    }];


}

关于objective-c - 在 UIImagePickerController 之后切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699963/

相关文章:

iphone - 检查 NSDictionary 是否为 Null?

ios - 如何在按钮目标选择器中放置变量

ios - Objective-C日历网格

uiimagepickercontroller - 拍照后无法选择使用照片或重拍

swift - UIImageView 不显示通过 UIIMagePickerController 选择的图像

ios - UIImagePickerController + 裁剪 : what does allowEditing and what does it not?

ios - 如何在点击时禁用 UIButton 突出显示?

iphone - 在 iPhone 上使用 AudioQueue 录制/播放

objective-c - 如何创建 json 并将其发布到 Web 服务 Objective c

ios - Hello world 命令行 LLDB iOS 无法解析 'main' 中的断点