Как добавить QLPreviewController в качестве подвида в objective C
можно ли добавить QLPreviewController в UIView как sub view.
Я пытался так
[self.view addSubview:previewViewController.view]
и reloadData
[previewViewController reloadData];
Я проверяю с этим URL добавление QLPreviewController как subview не загружает PDF . Но я не понимал, что такое self.pdfPreviewView
пожалуйста, направьте меня, как я могу добавить QLPreviewController как sub view..
2 ответов
Да, это возможно, см. ниже код:
QLPreviewController* preview = [[QLPreviewController alloc] init];
preview.dataSource = self;
preview.delegate = self;
[self addChildViewController:preview];//*view controller containment
//set the frame from the parent view
CGFloat w= self.quickLookView.frame.size.width;
CGFloat h= self.quickLookView.frame.size.height;
preview.view.frame = CGRectMake(0, 0,w, h);
[self.quickLookView addSubview:preview.view];
[preview didMoveToParentViewController:self];
//save a reference to the preview controller in an ivar
self.previewController = preview;
Swift 3.x
private var pVC: QLPreviewController?
override func viewDidLoad() {
super.viewDidLoad()
// I do not not why, but it needs to be setup after delay.
DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: setupPreview)
}
private func setupPreview() {
if (pVC != nil) { return }
let preview = QLPreviewController()
preview.dataSource = self
preview.delegate = self
preview.view.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: previewView.frame.size)
previewView.addSubview(preview.view)
preview.didMove(toParentViewController: self)
pVC = preview
}