Airprint - сразу на другой просмотр после завершения задания на печать
Я успешно включил функциональность AirPrint в свое приложение для iOS (если быть более точным, приложение для iPad). Однако я не могу понять, как программно направить пользователя в другое представление, когда задание на печать завершено.
В моем приложении есть кнопка печати, которая позволяла пользователям печатать этикетки, и я попробовал следующие два подхода, которые оба потерпели неудачу:
Использовать presentViewController после printToPrinter
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults () var printerURL: NSURL = defaults.URLForKey ("DefaultPrinter")! var printer: UIPrinter = UIPrinter (URL: printerURL) printController.printToPrinter (принтер, завершение Handler: ноль)
var vc = self.storyboard?.instantiateViewControllerWithIdentifier ("HomeVC") как HomeController self.presentViewController(vc, анимированный: true, завершение:nil)
С помощью приведенного выше кода я могу печатать на принтере, но приложение вызывает исключение при вызове self.presentViewController. Я заметил, что всплывающее окно состояния печати AirPrint все еще отображается, когда приложение пытается отобразить начальный вид.
Использовать обработчик завершения printToPrinter
printController.printToPrinter (printer, completeHandler: { (controller:UIPrintInteractionController!, завершено:Bool, ошибка:NSError!) -> Void в var vc = self.storyboard?.instantiateViewControllerWithIdentifier("AppSettingsVC") в качестве AppSeclerController. animated: true, завершение: nil) });
У меня проблема, похожая на метод 1 - я получаю всплывающее окно AirPrint, отображающее состояние печати. Но исключение выдается в строке presentViewController. Когда я устанавливаю точки отладки, я замечаю, что приложение пытается представить домашнее представление, когда всплывающее окно AirPrint все еще видно.
Я бы подумал, что это будет довольно просто, но я, должно быть, здесь упускаю что-то тривиальное! По сути, я пытаюсь реализовать следующую логику: 1. Пользователь нажимает кнопку "Печать". 2. Приложение печатает этикетку с помощью AirPrint. 3. После того, как этикетка напечатана (т. Е. Закрывается всплывающее окно с статусом AirPrint), приложению необходимо направить команду. пользователь на главном экране
Может кто-нибудь, пожалуйста, помогите. Заранее спасибо.