2011-12-13 10 views
9

È possibile aggiungere QLPreviewController a UIView come vista secondaria.Come aggiungere QLPreviewController come sottogruppo nell'obiettivo C

Ho provato come questo

[self.view addSubview:previewViewController.view] 

Ho anche chiamato reloadData

[previewViewController reloadData]; 

verifico con questo URL Adding QLPreviewController as subview doesn't load PDF. Ma io non capivo cosa è self.pdfPreviewView

per favore mi guida come posso aggiungere QLPreviewController come vista sub ..

+0

come di iOS6 questo è obsoleta: vedere http://oleb.net/blog/2012/10/remote-view-controllers-in-io s-6/ –

risposta

21

Sì, è possibile, vedere il codice qui sotto:

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; 
+2

Ciao, grazie per la tua risposta. Sto avendo alcune domande qui .. Perché io sono un principiante iOS. Il tuo modo di dire per creare ival per previewController. Che dire di datatype è UIViewController/QLPreviewController? quickLookView significa, dammi più dettagli pls? +1 –

+1

@NagaHarishMovva: Basta creare una proprietà UIViewController denominata previewController nel tuo oggetto - questo dovrebbe fare la cosa;) – arnoapp

+0

@ AzzUrr1 controllerò, grazie –

2

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 
}