Итак, я понимаю, что было много вопросов относительно использования UIWebView для отображения PDF-файла в приложении (на iPad). Я просмотрел все, что могу найти, но я не могу найти никакого удовлетворения.Отображение PDF с UIWebView не работает
То, что я пытаюсь сделать, очень просто, поэтому я действительно не знаю, почему он не работает. Все, что мне нужно сделать, это отобразить локально сохраненный 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, так как все, что мне действительно нужно сделать, это отображать и разрешать прокрутку.
Просто подумайте, правильно ли это имя? Путь устройства всегда чувствителен к регистру. – cocoakomali
Да, мне жаль, что это было просто имя файла. Я проверил его несколько раз. Он соответствует :(Это «moonlightSonataFirstMovement.pdf». – Barks
Я попытался переместить код в функцию prepareForSegue, но все равно ничего. Просто черный экран. – Barks