iOS模态跳转的页面WebView中加载html调用本机相册会dismiss返回上一个页面解决办法

首先感谢作者,提供了完美的解决办法,讲解的非常的详细。原文地址 

我在这里只是为了帮助大家可以尽快的解决问题,稍微的总结下。


首先在页面中定义一个全局布尔值_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];
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Bootstrap模态框可以嵌入一个HTML页面,这个页面可以包含任何需要的内容,例如表单、图像、文本等等。通过这种方式,可以在模态显示更复杂的内容,以满足不同的需求。同时,Bootstrap模态框还提供了丰富的样式和交互效果,使得页面更加美观和易于使用。 ### 回答2: Bootstrap模态框是一个用于创建弹出式窗口的页面工具,它可以让用户更有效地与页面互动,提高用户的体验感。而在Bootstrap模态框里面,我们可以嵌入一个HTML页面,以完成我们需要的功能,这个HTML页面可以是一个独立的页面,也可以是一个动态生成的页面。 首先,我们需要在Bootstrap模态框内部定义一个div容器,然后设置其样式为modal,这样我们就创建了一个模态框。接着,我们可以通过 AJAX 或者其他技术来得到我们想要插入到模态框之HTML内容,然后把它添加到模态框的div容器,这样就实现了在Bootstrap模态框里面嵌入一个HTML页面的功能。 在实际操作,我们可以将需要展示的数据通过AJAX请求服务器得到,并通过JavaScript动态插入到模态框里面的HTML页面,从而实现数据的展示和操作。同时,我们可以使用CSS样式来调整模态框和内部页面的布局,以适应我们的设计需求。 总之,在Bootstrap模态框里面嵌入一个HTML页面是一种很常见的功能,可以让我们更加方便地实现弹出框和数据展示功能,提高网站的用户交互性和用户体验感。 ### 回答3: Bootstrap模态框是一种常见的UI组件,在网站和应用程序被广泛使用。它主要用于展示信息、收集用户输入、进行操作确认等。比如,在一个电商网站,当用户点击“加入购物车”或“立即购买”按钮时,可能出现一个模态框,用于让用户确认操作或填写收货信息。 在Bootstrap模态,可以放置一个HTML页面,这样可以实现更复杂的内容和交互。具体来说,可以通过下面的步骤实现: 1. 在页面引入Bootstrap库和jQuery库。这两个库是使用Bootstrap模态框的前提条件。 2. 创建一个模态框的HTML结构,包括模态框的标题、内容区域和底部按钮。 3. 在模态框的内容区域,使用Ajax请求加载需要展示的HTML页面。可以使用jQuery的load()方法来实现,例如:$(“#modal-body”).load(“page.html”)。 4. 可以在加载HTML页面增加相关的脚本和CSS,实现更复杂的交互和样式。 需要注意的是,由于模态框是一个独立的DOM结构,所以在模态嵌套HTML页面时,需要确保HTML页面的脚本和样式都能正常加载。此外,为了避免模态框内容的出现滚动条,可以在HTML页面设置合适的布局和样式。 总之,使用Bootstrap模态加载HTML页面可以实现更复杂的内容和交互展示,具有广泛的应用场景和技术实现方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值