0

我正在开发一个具有单个大型 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?谢谢,尼克

4

1 回答 1

0

在你的PDFViewController

创建这样的属性@property(nonatomic, readwrite) NSString *selectedPDFUrl

在您的 tableViewContoller 中有一个NSMutableArray *arrayOfPDFStrings;并将所有 URLS 添加到此数组中。

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

-(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];
}

完成此操作后,您可以通过此变量访问 URL 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];
    }
于 2013-10-08T20:52:38.803 回答