У меня есть UIViewController "PdfViewController" с представлением, содержащим UIScrollView, который содержит UIWebView, разработанный раскадровкой. Я использую раскадровку в Xcode 4.2 с ARC.
Если я запускаю PdfViewController в качестве начального ViewController, веб-представление отображается, как и ожидалось.
Я хочу, чтобы PdfViewController отображал PDF из списка PDF. Поэтому я создал NavigationController, содержащий TableViewController с заголовками документов.
Если я пытаюсь показать PdfViewController с помощью «tableView didSelectRowAtIndexPath», представление остается черным и не загружает выбранный документ.
Нет сообщения об ошибке из Xcode.
Вызываются viewDidLoad и viewWillAppear из PdfViewController.
Здесь инициализация PdfViewController
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
PdfViewController *pdfViewController = [[PdfViewController alloc]init];
[pdfViewController setFileName:@"test"];
[self.navigationController pushViewController:pdfViewController animated:YES];
}
- Кажется, проблема в том, что PdfViewController не загружает соответствующий перо самостоятельно.
Если я сделаю запрос из TableViewCell, PdfViewController будет загружен правильно.
Я изменил код на:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.navigationController.viewControllers.lastObject setFileName:@"test"];
}
Единственное, что нужно знать, это то, что viewDidLoad и viewWillAppear вызываются до выполнения tableView didSelectRowAtIndexPath, поэтому PDF должен быть загружен в viewDidAppear.