UIImagePickerController不走回调的问题

今天又遇到了一个奇怪的问题,代码如下:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.allowsEditing = YES;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
[self presentViewController:imagePicker animated:YES completion:nil];

用法很对,没毛病,可就是不调用

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info

分析原因

  • UIImagePickerController实例对象被释放了 //这不可能,如果iOS系统没疯那肯定是我疯了
  • UIImagePickerControllerd的delegate被释放了 //但是delegate是当前视图控制器肯定也没有释放
  • delegate被改了 //看了看代码没有改动的地方啊

???
诡异的事件
。。。

后来我用kvo监测了一下delegate,发现果然被改了,改成了 _JZNavigationDelegating ...

真相大白

原来是我在pod里加入了一个帮助处理NavigationBar颜色的第三方库,这个库对UINavigationController做了一些处理,如下图


image.png

而我们今天的主角 UIImagePickerController恰恰就是UINavigationController的子类

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 如果说宇宙起源于如鸡子一样的混沌,那么世界上优秀的产品也是起源于最初对产品懵懂初知的种子用户,种子用户对于产品的研...
    菜頭先生阅读 636评论 0 51
  • 有一个关于房价的说法:半个平米,你可以日韩、新马泰一游;一个平米,你可以游遍欧洲;半个卫生间,可以游遍非洲、美洲;...
    小田田8585阅读 525评论 0 0
  • 今天又是一个双十一啦 过了一个又一个的双十一 不过这种在大学里没有老师明令禁止可以庆祝的感觉好不自然 不知道明年的...
    乔木非乔阅读 304评论 0 0
  • 初三以前,我一直是个“吊车尾”,成绩很差,因为拖班级后腿,遭到了不少老师的白眼。那时候我心态好,总觉得自己没错,至...
    默小九Roxy阅读 677评论 24 11