Пользовательские параметры печати с использованием AirPrint и UIPrintInteractionController - PullRequest
2 голосов
/ 20 октября 2011

Я успешно добавил возможности печати в приложение для iPad, в котором используется класс UIPrintInteractionController. Все работает хорошо, и стандартный документ напечатан.

Однако в моем приложении есть пара BOOL свойств, которые можно определить для задания на печать. (Включение определенных функций, добавление дополнительных схем расположения и т. Д.)

Как эти параметры могут быть представлены / изменены пользователем с помощью UIPrintInteractionController? Идеальным решением было бы добавить пару ячеек таблицы переключения таблицы в UITableView, который представлен в этом контроллере, но это, похоже, не разрешено API.

Редактировать: Это вид, который я имею в виду:

enter image description here

Ответы [ 3 ]

3 голосов
/ 05 мая 2012

Используйте printInteractionControllerParentViewController, хитрость заключается в том, чтобы объявить UINavigationController *aNav; в .h, а затем в viewDidLoad do aNav = [self UINavigationController];, это сохранит дескриптор navigationController (при условии, что self равно UITableViewController с UINavigationController setup ok).

Затем, после вызова uiprinterinteraction, выполните aNav.topViewController.viw.backgroundColor = [UIColor redColor];, чтобы изменить цвет фона uiprinterinteraction на красный.

Наконец, в printInteractionControllerParentViewController выполните возврат aNav;

Теперь вы успешно изменили цвет фона интерфейса AirPrint.

Используя это aNav, вы можете многое сделать.

1 голос
/ 21 октября 2011

Похоже, лучше всего (пока) назначить delegate для UIPrintInteractionController, и этот делегат должен реализовать метод:

- (UIViewController *)printInteractionControllerParentViewController:(UIPrintInteractionController *)printInteractionController

Если делегат возвращает экземплярa UINavigationController, тогда вместо того, чтобы быть представленным модально, его можно вытолкнуть из подкласса UITableViewController, который предоставляет список опций.

Из ссылки на класс UIPrintInteractionControllerDelegate:

UIKit может поместить возвращенный контроллер представления в стек, если его родитель является контроллером навигации, или представить его модально, если это не так.

UIPrintInteractionControllerDelegate Справочник по классу

0 голосов
/ 21 октября 2011

Вы можете попытаться создать подкласс UIPrintInteractionController, в справочнике классов нет ни единого намека на то, что это невозможно.

...