Как добавить QLPreviewController в качестве Subview в цель C - PullRequest
12 голосов
/ 13 декабря 2011

Возможно ли добавить QLPreviewController в UIView в качестве вспомогательного представления.

Я пробовал вот так

[self.view addSubview:previewViewController.view] 

Я тоже звонил reloadData

[previewViewController reloadData];

Я проверяю с этим URL Добавление QLPreviewController, поскольку подпредставление не загружает PDF . Но я так и не понял что такое self.pdfPreviewView

Пожалуйста, сообщите мне, как я могу добавить QLPreviewController в качестве вспомогательного представления ..

Ответы [ 2 ]

25 голосов
/ 14 декабря 2011

Да, это возможно, см. Код ниже:

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;
4 голосов
/ 27 апреля 2017

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
}
...