Aktualnie testuję moją obecną wersję w iOS10. Używam wersji beta Xcode 8 beta do testowania. Tutaj Metody delegatów Quicklook/QLPreviewController nie wywołują. Ten zestaw kodowy został opracowany z wersjami XCode 7 i iOS 9.3. Sprawdziłem ten problem na forum programistów Apple. Ale nie mogłem znaleźć odpowiedzi. Ktoś naprawił ten problem? (Używam Objective-C)Metody delegowania Quicklook/QLPreviewController nie wywołują w systemie iOS 10 Xcode 8
Jak korzystać z Quicklook/QLPreviewController w XCode 8 (iOS 10)?
// ----------------- ROZWIĄZANIE dla iOS 10 (podgląd jako widok) ----------------- -
Ten problem występuje, gdy dodajesz podgląd jako podgląd. Używamy poniżej linii kodu, głównie w iOS 9.3 i wersjach poniżej.
[self addChildViewController:previewer];
self.view addSubview:previewer.view];
[previewer didMoveToParentViewController:self];
W systemie iOS 10 problem pochodzi z poniższej linii kodu.
[self addChildViewController:previewer];
Dla iOS 10 musimy sprawdzić wersję i dodać powyższą linię kodu. Poniżej znajduje się działający zestaw kodów.
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];
Dzięki, działa również z Xamarin.iOS. –