Методы делегирования Quicklook / QLPreviewController не вызываются в iOS 10 Xcode 8
В настоящее время я тестирую свою текущую версию в iOS10. я используюXcode 8 бета 6 для тестирования. ВотМетоды делегирования Quicklook / QLPreviewController не вызываются. Этот кодовый набор работал с версиями XCode 7 и iOS 9.3. Я проверил эту проблему на форуме разработчиков Apple. Но не смог найти ответ. Кто-нибудь исправил эту проблему? (Я использую Objective-C)
Как использовать Quicklook / QLPreviewController в XCode 8 (iOS 10)?
// ----------------- РЕШЕНИЕ для iOS 10 (предварительный просмотр в качестве подпредставления) -------------------
Эта проблема возникает при добавлении средства предварительного просмотра в качестве подпредставления. Затем мы используем строки кода ниже в основном в iOS 9.3 и ниже.
[self addChildViewController:previewer];
self.view addSubview:previewer.view];
[previewer didMoveToParentViewController:self];
В iOS 10 проблема возникает из-за строки кода ниже.
[self addChildViewController:previewer];
Для iOS 10 нам нужно проверить версию и добавить приведенную выше строку кода. Ниже приведен рабочий набор кодов.
QLPreviewController* previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.delegate = self;
// To avoid iOS 10 previewer issue.
if (SYSTEM_VERSION_LESS_THAN(@"10.0")) {
[self addChildViewController:previewer];
}
CGFloat width = self.view.frame.size.width;
CGFloat height = self.view.frame.size.height;
previewer.view.frame = CGRectMake(0, 102, width, height-300);
[self.view addSubview:previewer.view];
[previewer didMoveToParentViewController:self];