在iOS开发中,我们会经常遇到一些奇怪的BUG,场景如下:
从一级界面A(在tabbar上)跳转到二级界面B加载H5界面,点击某个按钮唤起相册或者相机界面,然后点击取消或者选择照片返回,此时返回到了A控制器并且重新初始化了一下tabbar。原因是唤起相册控制器的模式有问题,可把相册控制器的modalPresentationStyle属性设置为UIModalPresentationCustom,由于是H5标签唤起的,我们可以在根控制器TabBarController中重写
-(void)presentViewController:(UIViewController*)viewControllerToPresentanimated:(BOOL)flagcompletion:(void(^) (void))completion方法
得到相册控制器,最后代码如下:
- (void)presentViewController:(UIViewController*)viewControllerToPresentanimated:(BOOL)flagcompletion:(void(^)(void))completion{
if(viewControllerToPresent) {
viewControllerToPresent.modalPresentationStyle = UIModalPresentationCustom;
[super presentViewController:viewControllerToPresent animated:flag completion:completion];
}
}