3

我对 XCode 和应用程序开发非常陌生。我目前正在 iPad 上的 uiwebviews 中加载基于 Web 的应用程序。加载一个特定页面时,它会显示一个 pdf 文件。我希望能够使用 AirPrint 打印此 pdf 文件。我正在寻找一个简单的解决方案。目前我正在使用的应用程序有 6 个文件。

-ViewController.m
-ViewController.h
-MainStoryboard_iPad.storyboard
-MainStoryboard_iPhone.storyboard
-AppDelegate.h
-AppDelegate.m

在 MainStoryboard 文件中,有许多类似于中央导航系统的窗口(图形)。如果有可能花一些时间来真正解释我需要做什么,而不是“看看这个链接”。我有编程经验,但从未使用过 XCode 或任何与 Apple 相关的产品。

4

1 回答 1

6

我想出了如何做到这一点。首先我在这里找到了一段代码,iOS Air print for UIwebview,当时我不知道如何实现,但后来我做了如下。

我的应用程序是一个单视图 XCode 项目

在我的故事板中,我插入了一个按钮(在我的导航栏上)并将其标识符更改为“操作”,然后确保打开“燕尾服”编辑器视图,显示我的 ViewController.m 文件,我单击并从按钮拖动到ViewController.m 文件,同时按住控制。这在询问我的按钮 ID 后插入了我的 IBAction 方法。

myActionButton

然后我复制了问题响应 3 中指定的代码。我的 ViewController.m 看起来链接了这个。

#import "ViewController.h"
@interface ViewController()
@end

@implementation ViewController()
//Some stuff here
@end

@synthesize webView

-(IBAction)myActionButton:(id)sender{
UIPrintInfo *pi = [UIPrintInfo printInfo];
pi.outputType = UIPrintInfoOutputGeneral;
pi.jobName = webView.request.URL.absoluteString;
pi.orientation = UIPrintInfoOrientationPortrait;
pi.duplex = UIPrintInfoDuplexLongEdge;

UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
pic.printInfo = pi;
pic.showsPageRange = YES;
pic.printFormatter = webView.viewPrintFormatter;
[pic presentAnimated:YES completionHandler:^(UIPrintInteractionController *pic2, BOOL completed, NSError *error) {
    // indicate done or error
}];
}

同样在我的 ViewController.h 文件中

#import ...
@interface ViewController : ...
{
IBOutlet UIWebView *webView
}

@property (nonatomic,retain) IBOutlet UIWebView *webView
@end

我没有设置 webview,所以我不能 100% 确定它们是如何创建的,但是在 youtube 上的HackLife87上有一个适合初学者的很好的系列,它展示了如何制作单视图应用程序。我认为 XCode 教程视频 #7 涉及设置视图。

由于我对 XCode 和 iPad 应用程序开发非常熟悉,因此我通过结合观看上述 XCode 教程视频的知识,然后实施Hafthor在 stackoverflow 上提供的解决方案,设法解决了我的问题。

于 2013-09-20T21:12:34.233 回答