iOS之input file调用相册控制器消失跳转到登陆页

      最近在做一个app要用到H5,其中有一个需求是要点击H5的的控件弹出系统相册,通过在H5的input file 中定义<input type="file" class="ios_only" accept="image/*" capture="camera">调用系统相册时虽然可以弹出如下的alertView

但是当点击相册时却相册,反而是跳转到登陆面,查看控制台发现发现报了如下的错误:

根据字面意思理解为我的四个控制的主控制器TabBarControllerViewController不在keywindow的视图层级里面,可能是因为这个原因当系统的alertView跳出后因根控制器不是当前控制器所以就崩溃,挑战到初始的根控制器,后来更改了keywidow的rootViewController为TabBarControllerViewController就可以了。如下图所示:

 

有什么疑问可以联系我的QQ547769931

 另外根据和某位网友的聊天发现还可以有第二种方法解决这个问题(本人没试过,上面方法不行的话可以试试这个方法),方法很简单就是让要要装载H5页面的控制器继承自一个父控制器,并重写里面的模态方法,方法如下,其本质是拦截掉回退:

//写一个父类 ,继承
-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
    if ( self.presentedViewController)
    {
        [super dismissViewControllerAnimated:flag completion:completion];
    }
}

 

posted @ 2016-08-31 23:21  Caersi  阅读(787)  评论(0编辑  收藏  举报