当前位置: 首页 > 面试题库 >

在WkWebView iOS中选择图像时,模态视图关闭

爱乐邦
2023-03-14
问题内容

我目前正在构建一个带有弹出模式视图的应用程序,其中包含WkWebView。当我想在此模式视图中上传图像并且出现“照片选择”时,模式视图只是退回到触发它的视图控制器。

我该如何预防?

import UIKit

class PostWindow : UIViewController {

@IBAction func close(sender: AnyObject) {
    dismissViewControllerAnimated(true, completion: nil)
}

override func viewDidLoad() {
    super.viewDidLoad()
    // do stuff here
    let myWebView:UIWebView = UIWebView(frame: CGRectMake(0, 70, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
    myWebView.loadRequest(NSURLRequest(URL: NSURL(string: "https://m.facebook.com/")!))
    self.view.addSubview(myWebView)

    self.title = "News Feed"

    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.Default, animated: true)
    UIApplication.sharedApplication().statusBarHidden = false

    /*let addButton: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Search,
    target: self,
    action: #selector(self.openSearch(_:)))
    self.navigationItem.setRightBarButtonItems([addButton], animated: true)*/
    self.navigationController?.navigationBar.tintColor = UIColor.blackColor()
}

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
}

}

谢谢!


问题答案:

我遇到了同样的问题。我发现文件上载操作表在选择一个选项时尝试自行关闭两次,这也导致模式被关闭。

一种解决方案是将UINavigationController包含webview的子类化,并重写dismissViewControllerAnimated以忽略它,除非它实际上有一个presentedViewController

像这样:

override func dismissViewControllerAnimated(flag: Bool, completion: (() -> Void)?) {
    if (self.presentedViewController != nil) {
        super.dismissViewControllerAnimated(flag, completion: completion)
    }
}

如果您不使用导航控制器,则只需在Webview中覆盖此方法即可。



 类似资料:
  • 我对中的有一个问题。 下面是我的代码: 问题:在中按下时,会像它应该的那样消失,取而代之。但是,并不会消失,而是停留在视图B的顶部。 当更改为时,如何强制关闭?请注意,也可以由以外的其他视图更改,因此只将传递给并在单击时将其设置为false并不能完成此工作。

  • 我的代码在下面..在中 在onActivityResult(int requestCode,int resultCode,Intent data)中

  • 我有这个图像,我想选择其中的所有地图,包括使用python的名称。 我用OpenCv试过了 但是我总是得到这个错误: OpenCV(4.2.0)C:\projects\OpenCV python\OpenCV\modules\imgproc\src\templammatch。cpp:1104:错误:(-215:断言失败)(深度==CV\U 8U | |深度==CV\U 32F) 我该怎么做?请帮帮

  • 我正在尝试从图库中浏览一个图像。但我得到以下运行时异常 代码是

  • 问题内容: 我们正在使用SQL Server2005,但是这个问题可能适用于任何RDBMS。 从视图中选择所有列时,以下哪一项更有效? 或者 问题答案: 永远不要使用“选择*” !!!! 这是查询设计的基本规则! 这有多种原因。其中之一是,如果您的表上只有三个字段,并且您使用了调用查询的代码中的所有三个字段,则很有可能会随着应用程序的增长而向该表中添加更多字段,并且您的select *查询仅用于返

  • 问题内容: 我们正在使用SQL Server 2005,但是这个问题可能适用于任何RDBMS。 从视图中选择所有列时,以下哪一项更有效? 或者 问题答案: 永远不要使用“选择*” !!!! 这是查询设计的基本规则! 这有多种原因。其中之一是,如果您的表上只有三个字段,并且您使用了调用查询的代码中的所有三个字段,则很有可能会随着应用程序的增长而向该表中添加更多字段,并且您的select *查询仅用于