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