我正在构建一个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);
谢谢
答案 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];