Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIPrintInteractionController不显示多个页面_Ios_Swift_Ios13_Uiprintinteractioncntrler - Fatal编程技术网

Ios UIPrintInteractionController不显示多个页面

Ios UIPrintInteractionController不显示多个页面,ios,swift,ios13,uiprintinteractioncntrler,Ios,Swift,Ios13,Uiprintinteractioncntrler,这个问题刚刚出现在iOS 13上,以前不是问题。如果我用一个图像演示UIPrintInteractionController控制器,一切都正常。如果我提交多个图像,打印控制器将不会显示,相反,我将收到一个错误,该错误声明:警告:当演示或取消正在进行时,尝试从视图控制器取消 下面是有问题的代码。因此,如果printingItems包含多个元素(这是它的整个点),控制器将不会显示,并且完成处理程序的success部分将返回false。在iOS 12中不是问题。这是在iPad上运行的 private

这个问题刚刚出现在iOS 13上,以前不是问题。如果我用一个图像演示
UIPrintInteractionController
控制器,一切都正常。如果我提交多个图像,打印控制器将不会显示,相反,我将收到一个错误,该错误声明:
警告:当演示或取消正在进行时,尝试从视图控制器取消

下面是有问题的代码。因此,如果
printingItems
包含多个元素(这是它的整个点),控制器将不会显示,并且完成处理程序的
success
部分将返回
false
。在iOS 12中不是问题。这是在iPad上运行的

private func print(finalPageImages:[UIImage]) {
    let printInfo = UIPrintInfo(dictionary: nil)
    printInfo.jobName = "job name"
    printInfo.outputType = .general
    printInfo.duplex = .none
    printInfo.orientation = .landscape

    let printController = UIPrintInteractionController.shared
    printController.showsNumberOfCopies = false
    printController.printInfo = printInfo
    printController.printingItems = finalPageImages

    printController.present(from: self.printButton, animated: true) { (controller, success, error) in
        guard error == nil else {
            Utilities.displayAlert(title: "Print Error", msg: error!.localizedDescription, controller: self)
            return
        }
        if success {
            Utilities.displayAlert(title: "Print Status", msg: "Your Shelf Talkers are printing.", controller: self, completion: { (action) in

            })
        } else {
            Utilities.displayAlert(title: "Print Error", msg: "There was a problem with this print job. Please try again.", controller: self)
        }
    }
}

您需要使用DispatchQueue从主线程显示printControllerasync@LeoDabus我在故障排除过程中尝试了这一点,但结果没有改变。此外,如果这是问题所在,则它也无法处理具有1个图像的打印作业,但确实可以。请尝试将
printController
声明为视图控制器的属性。如果存在相同问题,@C6Silver您找到解决方法了吗?