公司需要一个业务在iOS上的UIWebView页面可以上传图片,结果是iOS8以上怎么样也调不出来的相册管理视图界面。
而iOS7及一下都可以调起,这下都以为是iOS8以上的页面属性问题,一直围绕着这个出发
(吐槽一点,主要是网上的人真心乱下结论,技术和学术都是需要很严谨的,请别乱下结论和猜想!!)
一直盲目地从各种h5属性下手,忙乎了半天,终于静下心来,看到日志:
Warning: Attempt to present <UIImagePickerController: 0x14702e000> on <LBRotationViewController: 0x146889400> whose view is not in the window hierarchy!
这才恍然大悟,完全弄错了解决方向!!
关乎这个问题网上就有很多的解答:
http://stackoverflow.com/questions/11862883/whose-view-is-not-in-the-window-hierarchy
http://blog.csdn.net/jymn_chen/article/details/12239319
非常多的情况在于viewDidLoad 和 viewDidAppear这些声明周期里面对视图在window hierarchy操作的不恰当,一个特别好的比喻:如果你盖了第一层楼,直接去盖第三层,肯定不行啦。
相关的一些问题:
http://stackoverflow.com/questions/25942676/ios-8-sdk-modal-uiwebview-and-camera-image-picker
http://www.cnblogs.com/smileEvday/archive/2012/05/29/presentModalViewController.html