2016-07-17 5 views
0

Я использую QLPreviewController для отображения PDF. Теперь я пытаюсь добавить элементы кнопки на панель инструментов. Когда я печатаю элементы панели инструментов, я вижу, что они добавляются, но моя панель инструментов не появится. Почему это не появляется?Панель инструментов QLPreviewController не отображается

func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem { 


     let rightButton = UIBarButtonItem(title: "Title", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(drawCircle)) 

     let rightButton2 = UIBarButtonItem(title: "Title2", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(drawCircle)) 

     controller.setToolbarItems([rightButton, rightButton2], animated: false) 

     print(controller.toolbarItems) 

     let localUrl = String(format:"%@/%@", PDFFilePath, fileNameGroup) 
     let url = NSURL.fileURLWithPath(localUrl) 

     return url 
    } 

viewPDF = QLPreviewController() 

     viewPDF.dataSource = self 


     self.presentViewController(viewPDF, animated: true, completion: nil) 

ответ

0

Из того, что я сделал, я не уверен, что вы добавляете кнопки в нужное положение. Но проблема в том, что вам нужно создать настраиваемый контроллер представления и добавить QLPreviewController в качестве подзадачи. Что-то вроде этого:

class CustomQLViewController: UIViewController { 

    var customQL=QLPreviewController() 
    @IBOutlet weak var qlView: UIView! //defined in storyboard for QLPreviewController 

    override dynamic func viewDidLoad() { 
     super.viewDidLoad() 
     customQL.dataSource = self 
     customQL.view.frame = CGRectMake(0, 0, qlView.frame.size.width, qlView.frame.size.height) 
     qlView.addSubview(customQL.view) 
    } 

То, что вы видите здесь контроллер вида добавлен в раскадровке с пользовательской UIView, используемой для представления региона, который будет израсходован на QLPreviewController. Просто добавьте нужные кнопки в раскадровку и соедините их выходы в классе. Главное, чтобы установить контроллер QLPreview в размеры представления, добавленного в раскадровку (например, qlView), и добавить в кадр QLPreview объект qlView. Последним шагом было бы добавление QLpreview в виде subview в qlView.

Смежные вопросы