UIPrintInteractionController не отображает несколько страниц - PullRequest
1 голос
/ 18 октября 2019

Эта проблема только появилась с iOS 13 и ранее не была проблемой. Если я представляю контроллер UIPrintInteractionController с одним изображением, все работает нормально. Если я отправлю более одного изображения, контроллер печати не будет отображаться, и вместо этого я получу сообщение об ошибке: Warning: Attempt to dismiss from view controller <UIViewController: 0x7fefcc4e7ab0> while a presentation or dismiss is in progress!

Ниже приведен код, о котором идет речь. Итак, еще раз, если printingItems содержит более 1 элемента (что является всей его точкой), контроллер не будет отображаться, а часть 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)
        }
    }
}
...