从多个UITableView单元加载单个PDF查看器

时间:2013-10-08 20:37:49

标签: ios objective-c pdf uitableview

我正在开发一个具有单个大型UITableView的项目,所有单元格都转到另一个ViewController,每个都显示一个单独的PDF。但是,我想整合它,因此每个单元格都会加载一个PDF ViewController,它根据被挖掘的单元格加载相应的PDF。这是我到目前为止加载和显示PDF的代码。 在标题中:

    @property (weak, nonatomic) IBOutlet UIWebView *pdfView;

中的

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        NSString *urlAddress = [[NSString alloc] init];
        urlAddress = [[NSBundle mainBundle] pathForResource:@"PDF1" ofType:@"pdf"];
        NSURL *url = [NSURL fileURLWithPath:urlAddress];
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
        [self.pdfView loadRequest:requestObj];
    }

如何修改此代码以使PDFViewController确定选择了哪个单元格,并加载相应的PDF? 谢谢, 尼克

1 个答案:

答案 0 :(得分:0)

PDFViewController

创建一个像@property(nonatomic, readwrite) NSString *selectedPDFUrl;

这样的属性

在你的tableViewContoller中  有NSMutableArray *arrayOfPDFStrings;并将所有URL添加到此数组。

当用户选择一个单元格'didSelectRowAtIndexPath copy that particular cell PDF url into the PDFViewController objects selectedPDFUrl`属性时;

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{    
    PDFViewController*pdfView=[[PDFViewControlleralloc]initWithNibName:@"PDFViewControllers" bundle:nil];
    pdfView.selectedPDFUrl = [arrayOfPDfUrls objectAtIndex:indexPath.row - 1];

    [self.navigationController pushViewController:cards animated:YES];
}

执行此操作后,您可以通过此变量selectedPDFUrl访问该网址;

所以你应该做这样的事情

- (void)viewDidLoad
    {
        [super viewDidLoad];
        NSString *urlAddress = [[NSString alloc] init];
        urlAddress = [[NSBundle mainBundle] pathForResource:selectedPDFUrl ofType:@"pdf"];
        NSURL *url = [NSURL fileURLWithPath: selectedPDFUrl];
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
        [self.pdfView loadRequest:requestObj];
    }