我在Xcode中本地存储了4个PDF文件。我想将所有PDF放入一个数组中,然后在UITableView
中显示它们。当用户选择其中任何一个时,它应该在下一个ViewController
中打开。以下是显示一个PDF文件的示例代码,但我需要列出多个PDF文件:
NSURL *targetURL = [NSURL URLWithString:@"http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIWebView_Class/UIWebView_Class.pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webpage loadRequest:request];
请提供一些示例代码。
答案 0 :(得分:0)
将PDF加载到webpage
对象的方式是一个好的开始。要使此代码更加动态以使用对象数组,您需要首先在视图控制器中实现UITableViewDelegate
和UITableViewDatasource
协议。接下来,您需要在视图控制器类上创建NSArray
个URL作为实例属性。在.m文件中,将其添加到@implementation
部分上方:
@interface MyViewController ()
<
UITableViewDataSource,
UITableViewDelegate
>
@property NSArray *pdfFileUrls;
@end
然后确保为两个UITableView
协议实现所有必需的方法。编译器会为您提供任何未实现的必需方法的警告,因此请注意这些方法。
然后在初始化程序或viewDidLoad中填充数组:
self.pdfFileUrls = [NSArray arrayWithObjects:@"url1", @"url2", @"url2", @"url4", nil];
假设您的文件URL包含文件名(如您的示例所示),则可以使用此数组中的URL为表格视图单元格创建标签。在tableView:cellForRowAtIndexPath:
方法内部,使用此代码分配标签:
static NSString* identifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
NSString* theFileName = [[[self.pdfFileUrls objectAtIndex:[indexPath row]] lastPathComponent] stringByDeletingPathExtension]
cell.textLabel.text = theFileName;
最后,在tableView:didSelectRowAtIndexPath:
方法中,您需要从数组中获取正确的URL:
NSURL *targetURL = [NSURL URLWithString:[self.pdfFileUrls objectAtIndex:[indexPath row]]];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webpage loadRequest:request];
如果您对此有任何疑问,请与我们联系。
答案 1 :(得分:0)
这是预览文档的最佳方式..
QLPreviewController
和UIDocumentInteractionController
提供了一个专门的视图,用于预览PDF,Excel,PPTX,Word等文档。使用这些API您可以全屏模式显示它或者您可以导航到下一个页。
请看下面的链接...
http://iosdevelopertips.com/data-file-management/preview-documents-with-qlpreviewcontroller.html