如何在推送视图之前加载PDF

时间:2011-03-03 18:15:24

标签: ios pdf uiwebview

我想在我的子视图中将PDF加载到导航堆栈之前加载PDF。现在,UIWebview加载PDF文件时会有短暂的延迟。我想要的是加载PDF,以便它随着视图滑到屏幕上。

我尝试像下面那样自定义initWithNib方法但是没有任何加载。我的想法是“如果我在初始化期间启动PDF加载,那么当我去推送它时它就会准备就绪。”猜不是。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *path = [bundle pathForResource:pdfURL ofType:@"pdf"];
    NSURL *fileURL = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
    [webView loadRequest:request];
 }
return self;

}

这是我目前的实施:

在父视图中,我使用以下命令初始化pdfViewer:

            PDFViewerVC *vc = [[PDFViewerVC alloc]initWithNibName:@"PDFViewerVC" bundle:nil];
        vc.pdfURL = @"Service Manual RS20";
        vc.title = [self.list objectAtIndex:row];
        [self.navigationController pushViewController:vc animated:YES];
        [vc release];

在pdfViewer中我使用以下方法加载PDF:

-(void)viewDidLoad{
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:pdfURL ofType:@"pdf"];
NSURL *fileURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
[webView loadRequest:request];
[super viewDidLoad];

}

感谢。

2 个答案:

答案 0 :(得分:0)

你对UIWebView的了解不多,你需要更深入地使用Quartz。 当然,这意味着你需要复制很多UIWebView。

检查Apple的ZoomingPDFViewer是一个简单的例子。 http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html

答案 1 :(得分:0)

尝试等待直到UIWebView的webViewDidFinishLoad:委托方法被调用,然后再将其视图控制器推送到导航堆栈。