Я ударил утверждение iOS при отклонении UIViewController
. У UIViewController
есть UIView
, к которому я добавил WKWebView
. В это WKWebView
я загрузил файл PDF. PDF отображает и функционирует нормально. Когда я закрываю окно, XCode сообщает о подтверждении:
-[PDFExtensionTopView _accessibilityUnregisterRemoteView]: unrecognized selector sent to instance
Если у меня включена точка останова All Objective-C Exceptions
, выполнение останавливается. Я могу продолжить, но это довольно разрушительно. Пользователи никогда не видят никаких проблем, так что это просто проблема времени разработки. Я обхожу проблему, отключая точки останова при использовании этого представления, но предпочел бы найти реальное решение. Я на Xcode 11.3.1, использую Obj C в этом классе.
Я создал упрощенный фиктивный проект. Весь код UIViewController ниже. Он представлен из простого UIButton, который ничего не передает этому UIViewController.
Перемещение вызова метода displayPDF происходит в viewWillAppear
, но не изменяется, если в DidAppear, DidLoad, et c. Это не связано с указанным c PDF (я пробовал файлы из нескольких источников).
Если я использую отображение HTML (которое помещает фиктивную HTML в веб-просмотр), я делаю не испытывают проблемы.
Я могу просто быть ржавым в Obj C и пропустить что-то очевидное. Есть мысли?
#import "MyPDFViewController.h"
#import <WebKit/WebKit.h>
@interface MyPDFViewController ()
@property (strong, nonatomic) IBOutlet UIView *pdfContainerView;
- (IBAction)closeButtonPressed:(id)sender;
@property (nonatomic, strong) WKWebView *webView;
@end
@implementation MyPDFViewController
-(void)viewWillAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self displayPDF];
}
-(void)displayPDF {
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyPDFFile" ofType:@"pdf"];
NSData *data = [NSData dataWithContentsOfFile:path];
self.webView = [[WKWebView alloc] initWithFrame:self.pdfContainerView.frame configuration:[[WKWebViewConfiguration alloc] init]];
[self.webView loadData:data MIMEType:@"application/pdf" characterEncodingName:@"utf-8" baseURL:[NSURL URLWithString:@""]];
[self.pdfContainerView addSubview:self.webView];
}
-(void)displayHTML {
[self.webView loadHTMLString:@"<html><body>Hi.</body></html>" baseURL:nil];
}
- (IBAction)closeButtonPressed:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
//
}];
}
@end