iOS 10の Swift 3 では、これらのソリューションはどれもうまくいきませんでした。問題は、viewDidAppear メソッドの後に [共有] ボタンが作成されることです。
共有ボタンを削除するために私が従った手順は次のとおりです。
1) QLPreviewController をサブクラス化しました
2)このサブクラスでドキュメントを開くメソッドを作成しました:
func show(controller: UIViewController, url: NSURL) {
// Refreshing the view
self.reloadData()
// Printing the doc
if let navController = controller.navigationController {
navController.pushViewController(self, animated: true)
}
else {
controller.show(self, sender: nil)
}
}
3) viewDidLayoutSubviews で、共有ボタンを置き換えるダミーのボタン項目を作成しました。
override func viewDidLayoutSubviews() {
navigationItem.rightBarButtonItems?[0] = UIBarButtonItem()
}
4) 別の VC でドキュメントを開きたい場合は、次のように呼び出します。
QLSubclass().show(controller: self, url: path as NSURL)
注 : 共有ボタンが消える前に常に表示されるため、インスタンス化したグローバル変数ではなく、常にこの方法で呼び出します。