Итак, я понимаю, что было много вопросов относительно использования UIWebView для отображения PDF в приложении (на iPad). Я просмотрел все, что смог найти, но не могу найти удовлетворения.
То, что я пытаюсь сделать, очень просто, поэтому я действительно не знаю, почему это не работает. Все, что мне нужно сделать, это отобразить локально сохраненный PDF-файл в UIWebView. По сути, все, что я получаю, это черный экран. Если бы кто-то мог взглянуть на мой код, я был бы очень благодарен. Спасибо.
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Segue to the materials screen.
if ([segue.identifier isEqualToString:@"materials"]) {
PDFViewController *pdfViewController = [segue destinationViewController];
NSIndexPath *path = [self.tableView indexPathForSelectedRow];
int row = [path row];
Lesson *selected = [purchasedLessons objectAtIndex:row];
pdfViewController.selectedLesson = selected ;
//Start Load PDF in UIWebView
pdfViewController.pdfWindowTitle.title = selected.titleAndSubtitle;
pdfViewController.pdfWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 1024, 704)];
NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"moonlightSonataFirstMovement" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[pdfViewController.pdfWebView loadRequest:requestObj];
//End Load PDF
}
}
Я проверил, правильно ли передан мой объект на сцену (и так ли это) и правильно ли я получаю запрос; я получаю:
<NSURLRequest file://localhost/Users/MYCOMPUTER/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/AB161E57-D942-44C2-AA75-030087820BED/iLessons%20Piano.app/moonlightSonataFirstMovement.pdf>
Кроме того, у меня есть это сообщение об ошибке:
iLessons Piano[23080:f803] DiskImageCache: Could not resolve the absolute path of the old directory.
Кроме того, сообщение NSLog по некоторым причинам печатается 8 раз.
Единственное, о чем я могу думать, это то, что мне нужно выполнить эту загрузку, когда я вызываю свою функцию prepareForSegue в предыдущей сцене. Это или использовать другой метод, как кварц. Но я бы предпочел использовать UIWebView, поскольку все, что мне действительно нужно, это отображать и разрешать прокрутку.