iOS 13中VisionKit框架中的iOS应用程序崩溃

3
我正在使用iOS 13中引入的VisionKit框架进行文档捕获。这是一个非常好的用于捕获文档的框架。但在这个框架中,有一个导航栏上有两个按钮(Retake和Done)。当我点击这些按钮时,应用程序会崩溃,并显示以下原因:-
未捕获异常 'NSInternalInconsistencyException',原因:'应用程序在UIApplication上调用了-statusBar或-statusBarWindow:必须更改此代码,因为不再有状态栏或状态栏窗口。请改为在窗口场景上使用statusBarManager对象。'
我尝试通过将preferredStatusBarUpdateAnimation返回false来解决此问题,但没有成功。
以下是代码片段:-
import UIKit
import VisionKit

class DetectDocumentViewController: UIViewController, VNDocumentCameraViewControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    @IBAction func tapMeAction(_ sender: UIButton) {
        let vc = VNDocumentCameraViewController()
        vc.delegate = self
        present(vc, animated: true)
    }

    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
        print("Found \(scan.pageCount)")

        for i in 0 ..< scan.pageCount {
            let img = scan.imageOfPage(at: i)
            print(img)
            // ... your code here
        }
        controller.dismiss(animated: true, completion: nil)
    }

    func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) {
        controller.dismiss(animated: true)
    }

    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFailWithError error: Error) {
        print(error)
        controller.dismiss(animated: true)
    }
}

有什么方法可以解决这个问题,防止它崩溃吗?

显示导致崩溃的代码行。 - EmilioPelaez
@EmilioPelaez 我的代码没有导致崩溃。当我点击VNDocumentCameraViewController呈现后显示的导航栏上的“完成”或“重拍”按钮时,它会崩溃。您可以通过在XCode项目中实现上述代码来生成它。我认为这是VisionKit框架的内部崩溃。 - Piyush Naredi
1个回答

1

这是一个iOS 13内部问题。现在在iOS13.1中已经解决,请在iOS 13.1中运行您的项目,它将正常工作。请检查iOS 13错误修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接