首先感谢作者,提供了完美的解决办法,讲解的非常的详细。原文地址
我在这里只是为了帮助大家可以尽快的解决问题,稍微的总结下。
首先在页面中定义一个全局布尔值_flag,然后加入下面的代码,就能解决问题,html调用本地相册不再会调用dismiss返回上个页面。但是你点击返回按钮也失效了
- (UIViewController *)presentingViewController {
if (_flag) {
return nil;
} else {
return [super presentingViewController];
}
}
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion {
if ([viewControllerToPresent isKindOfClass:[UIDocumentMenuViewController class]]
||[viewControllerToPresent isKindOfClass:[UIImagePickerController class]]) {
_flag = YES;
}
[super presentViewController:viewControllerToPresent animated:flag completion:completion];
}
解决模态跳转的页面WebView中加载html调用本地相册会dismiss和返回按钮dismiss失效办法(终极方案)
首先分别定义布尔值_flag和dismissBool
-(void)clickHome//返回按钮的方法
{
[self dismissViewControllerAnimated:YES completion:nil];
dismissBool = YES;
}
-(UIViewController *)presentingViewController {
if (!dismissBool) {
if (_flag) {
return nil;
} else {
return [super presentingViewController];
}
}else{
return [super presentingViewController];
}
}
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion {
if ([viewControllerToPresent isKindOfClass:[UIDocumentMenuViewController class]]
||[viewControllerToPresent isKindOfClass:[UIImagePickerController class]]) {
_flag = YES;
}
[super presentViewController:viewControllerToPresent animated:flag completion:completion];
}