使用AirPrint和UIPrintInteractionController的自定义打印选项

时间:2011-10-20 15:58:56

标签: iphone objective-c cocoa-touch airprint

我已成功将打印功能添加到使用UIPrintInteractionController课程的iPad应用程序中。事情很好,打印出标准文件。

但是,我的应用程序中可以为打印作业定义几个BOOL属性。 (打开某些功能,添加其他布局方案等)

用户如何使用UIPrintInteractionController呈现/修改这些选项?完美的解决方案是将一些切换表视图单元添加到该控制器中显示的UITableView,但API似乎不允许这样做。

编辑:这是我所指的观点:

enter image description here

3 个答案:

答案 0 :(得分:3)

使用printInteractionControllerParentViewController,诀窍是在UINavigationController *aNav;中声明.h,然后在viewDidLoadaNav = [self UINavigationController];这将保存navigationController句柄(假设自己是UITableViewControllerUINavigationController设置正常。)

然后在调用uiprinterinteraction后,执行aNav.topViewController.viw.backgroundColor = [UIColor redColor];uiprinterinteraction背景颜色更改为红色。

最后,在printInteractionControllerParentViewController中返回aNav;

现在您已成功更改AirPrint ui的背景颜色。

通过使用此aNav,您可以做很多事情。

答案 1 :(得分:1)

看起来最好的选择(到目前为止)是将delegate分配给UIPrintInteractionController,并让该委托实施该方法:

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

如果委托返回UINavigationController的实例,那么可以从提供选项列表的UITableViewController子类推送它,而不是以模态方式呈现。

来自UIPrintInteractionControllerDelegate班级参考:

  

UIKit可以将返回的视图控制器推送到堆栈中   parent是导航控制器,如果不是,则以模态方式显示。

UIPrintInteractionControllerDelegate Class Reference

答案 2 :(得分:0)

您可以尝试子类化UIPrintInteractionController,类引用中没有提示它是不可能的。