【问题标题】:Warning: Attempt to present <UIImagePickerController: 0x7ca5dc00> on <UIViewController: 0x7b9cac00> which is already presenting (null)警告:尝试在已呈现的 <UIViewController: 0x7b9cac00> 上呈现 <UIImagePickerController: 0x7ca5dc00> (null)
【发布时间】:2015-05-29 11:56:19
【问题描述】:

我在使用 iPad 时遇到此错误。但是 iPhone 可以工作。请分享解决方案。我的代码如下。

-(void)pickImageFromLibrary
{

    UIImagePickerController *picker10 = [[UIImagePickerController alloc] init];
    picker10.delegate = self;
    picker10.allowsEditing = YES;
    picker10.view.tag=100;


        picker10.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    [self presentViewController:picker10 animated:YES completion:NULL];


}

【问题讨论】:

标签: ios objective-c iphone uiimagepickercontroller


【解决方案1】:

你应该试试这个代码!

[self.presentedViewController dismissViewControllerAnimated:NO completion:nil];

【讨论】:

  • edit 提供更多信息。纯代码和“试试这个”的答案是discouraged,因为它们不包含可搜索的内容,也没有解释为什么有人应该“试试这个”。我们在这里努力成为知识的资源。
【解决方案2】:

UIImagePickerCopntroller 必须在 iPad 的弹出窗口中呈现。看看下面的 iPad 代码:

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
    [popover presentPopoverFromRect:self.selectedImageView.bounds inView:self.selectedImageView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    self.popOver = popover;
} else {
    [self presentModalViewController:picker animated:YES];
}

不要忘记为弹出框添加一个强属性:

@property (nonatomic, strong) UIPopoverController *popOver;

这里是解除它的委托方法:

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

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

这里是指向类参考的链接以获取更多信息:Class Refference

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多