2011-12-13 11 views
9

Czy jest możliwe aby dodać QLPreviewController do UIView jako widok sub.Jak dodać QLPreviewController jako podrzędny w celu C

Starałem się ten

[self.view addSubview:previewViewController.view] 

Zadzwoniłem również reloadData

[previewViewController reloadData]; 

sprawdzić z tego adresu URL Adding QLPreviewController as subview doesn't load PDF. Ale ja nie rozumiem, co jest self.pdfPreviewView

proszę kierować mi jak mogę dodać QLPreviewController jako sub widzenia ..

+0

jak z iOS6 jest przestarzały: zobaczyć http://oleb.net/blog/2012/10/remote-view-controllers-in-io s-6/ –

Odpowiedz

21

Tak, to możliwe, patrz poniższy kod:

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

Witam, dziękuję za odpowiedź. Mam tutaj kilka pytań. Ponieważ jestem początkującym użytkownikiem iOS. Twoje przysłowie mówiące o tworzeniu ival dla previewController. Co z typem danych to UIViewController/QLPreviewController? quickLookView oznacza, daj mi więcej szczegółów pls? +1 –

+1

@NagaHarishMovva: Wystarczy utworzyć właściwość UIViewController o nazwie previewController w obiekcie - powinno to zrobić;) – arnoapp

+0

@ AzzUrr1 Sprawdzę, dziękuję –

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 
} 
Powiązane problemy