iPad warning:Attempt to present <UIImagePickerController:xxxx > on xxxx which is already presenting (null)

这个问题网上也有很多的答案.我在这里分享下我详细过程.

设备: ipad pro

系统:iOS 10.3

相关代码 

这里使用actionSheet 创建活动卡<问题就出现在这>

...

// 这里 

正确的代码

__weak typedef(self)weakSelf = self;

if([[[UIDevicecurrentDevice]systemVersion]floatValue]>=8.0){

[[NSOperationQueuemainQueue]addOperationWithBlock:^{[selfpresentViewController:cameraUI animated:NO completion:nil];}];

}else{

[controller presentViewController:cameraUI animated:NO completion:nil];

}

原因分析:


提供答案的作者猜想,在ios 8 中, alert view 和 action sheet 实际上是以控制器的方式弹出的.所以,如果你从这个alert view 上弹出了一个响应控制器的话,这时,这个alert view 正在销毁, 而 你要弹出的控制器却整在被弹出. 操作冲突. 所以我延迟了 UIImagePickerController 的弹出, 直到runloop的下一次迭代.


笔者第一次写分享,写的不是很好,很多东西怕自己了解的不够深,造成误解.所以都是直接找的准确的解答来分享.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容