【问题标题】:UIImagepicker disappears immediately aftershowing on iPhoneUIImagepicker 在 iPhone 上显示后立即消失
【发布时间】:2013-12-20 14:23:02
【问题描述】:

我有 2 个适用于 iPhone 和 iPad 的故事板。 从 UITableviewcontroller 上的按钮中,我想使用 UIImagepicker 选择图像。

在 iPad 上这工作正常,在 iPhone 上 UIImagepicker 显示很短的时间,然后他消失了。

iPad 和 iPhone 的调用代码是相同的,我可以看到故事板是相同的。我找了几个小时,看不到为什么 Imagepicker 在 iPhone 和 iPad 上消失了。 有人对这种行为有想法吗? UIImagePicker 什么都不做就消失的原因是什么?


- (void) go {
    UIImagePickerController *ipc = [[UIImagePickerController alloc]init];
    [ipc setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum];
    ipc.delegate=self;
    [self presentViewController:ipc animated:YES completion:^{}];
    }
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    NSLog(@"imagePickerControllerDidCancel");
    [self dismissViewControllerAnimated:YES completion:^{}];
    }

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [self.navigationController dismissViewControllerAnimated:NO completion:^{}];
    [self dismissViewControllerAnimated:NO completion:^{}];
        NSLog(@"didFinishPickingMediaWithInfo");
    }

在 iPhone 上,永远不会显示日志“imagePickerControllerDidCancel”!

【问题讨论】:

  • 显示一些代码!您是否已逐步调试调试器,和/或取出其他代码以查看是否可以将问题最小化?
  • 将此UIImagePickerController *ipc 声明为属性,而不是局部变量

标签: ios iphone ipad uiimagepickercontroller


【解决方案1】:

将选取器存储在强类属性中,而不是局部变量中,如下所示:

@property(nonatomic, strong) UIImagePickerController *imagePickerController

...

- (void) go {
    self.imagePickercontroller = [[UIImagePickerController alloc]init];
    self.imagePickercontroller.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    self.imagePickercontroller.delegate=self;
    [self presentViewController:ipc animated:YES completion:nil];
}

【讨论】:

  • 不,同样的结果。我认为这与情节提要有关,因为在 iPad 上代码非常完美,而在 iPhone 上则不... tx
猜你喜欢
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
相关资源
最近更新 更多