【问题标题】:hide share button from QLPreviewController从 QLPreviewController 隐藏共享按钮
【发布时间】:2019-11-26 17:53:23
【问题描述】:

我需要从 QLPreviewController 中隐藏分享按钮按钮

这是在新视图中显示 PDF(例如)的原始代码

var previewItem = NSURL()
func preview(_command: CDVInvokedUrlCommand){
 self.previewItem = fileLocationURL! as NSURL
 let previewController = QLPreviewController();
 previewController.dataSource = self;
 self.viewController?.present(previewController, animated: true, completion: nil);
}
extension PreviewAnyFile: QLPreviewControllerDataSource {
    func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
        return 1
    }

    func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
        return self.previewItem as QLPreviewItem
    }
}

我尝试了这段代码(将 QLPreviewController 超类化为 QLPreviewController )但分享按钮仍然存在

class QLSPreviewController : QLPreviewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(true )
        //This hides the share item
        if let add =  self.children.first as? UINavigationController {
            if let layoutContainerView  = add.view.subviews[1] as? UINavigationBar {
                 layoutContainerView.subviews[2].subviews[1].isHidden = true
            }
        }
    }
}

【问题讨论】:

  • 你有权限修改QLSPreviewController的源吗?
  • 要创建自定义 PDF 查看器,您应该继承 PDFView
  • @flanker 是的,我有,

标签: ios swift


【解决方案1】:

基于几个相当安全的假设:

  • 您的 PDF 查看器类是 UIViewController 的子类
  • navigationBar 来自导航控制器,不是手动创建的

您应该能够删除 UBarButtonItem

从 ViewDidLoad 内部:

navigationItem.rightBarButtonItems = []

如果需要,也可以在课堂外:

myPDFViewController.navigationItem.rightBarButtonItems = []

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    相关资源
    最近更新 更多