拆分视图应用程序,在详细信息视图中显示PDF,PDF是本地存储

时间:2011-05-13 14:45:47

标签: ios ipad uisplitviewcontroller

我正在构建一个Split View应用程序,使用plist作为我的Array,并使用UIWebView在DetailViewController中显示内容。使用下面的代码调用plist中的URL地址,URL Address通过UIWebView在DetailViewController中显示PDF。

DetailViewController.m

NSString *mutareURL = [_detailItem description];
NSURL *url = [NSURL URLWithString:mutareURL];
[_catalog loadRequest:[NSURLRequest requestWithURL:url]];

我需要做的是在项目的资源文件夹中包含所有PDF文件。我可以为RootViewController(TableView)使用NSArray或plist,但是我需要能够在RootViewController(TableView)中选择Row时通过UIWebView在DetailViewController中显示PDF。我在DetailViewController.m文件中尝试了此代码,但它无法正常工作。

NSString *path = [[NSBundle mainBundle] pathForResource:@"%@" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[_Pdf loadRequest:request];

我的RootViewController.m文件中有一个带有此代码的NSLog,我确实看到pdf文件的名称显示在我的调试器中。我只是不知道如何从RootViewController获取它们并将它们传递到pathforResourse“@”%@“ofType:@”pdf“]; area。brochures是一个NSArray,它包含所有addObject:@”nameofpdfs“正在过去。

RootViewController.m

detailViewController.detailItem = [NSString stringWithFormat:@"%@", [brochures objectAtIndex:indexPath.row]];
NSLog(@"Cell created for row: %d", [indexPath row]);
NSLog(@"brochures = %@", detailViewController.detailItem);

谢谢

1 个答案:

答案 0 :(得分:0)

答案可能在最后一段。第一行基本上通过设置后者的RootViewController属性将所选文件名从DetailViewController传递到detailItem

如果您更换

NSString *path = [[NSBundle mainBundle] pathForResource:@"%@" ofType:@"pdf"];

通过

NSString *path = [[NSBundle mainBundle] pathForResource: self.detailItem ofType:@"pdf"];

它应该有用。

根据brochures数组中的文件名是否已包含@".pdf"后缀,您可能不得不将其从邮件发送中删除:

NSString *path = [[NSBundle mainBundle] pathForResource: self.detailItem ofType: nil];