2017-03-19 8 views
0

私のQLPreviewControllerの半透明のプロパティを無効にすることはできません。私はすでに何を試してみました:QLPreviewControllerを押して、Translucentをfalseに設定しますか?

let preview = SideQLPreviewController() 
preview.navigationController?.navigationBar.isTranslucent = false //before 
self.navigationController?.pushViewController(preview, animated: false) 
preview.navigationController?.navigationBar.isTranslucent = false //after 
self.navigationController?.navigationBar.isTranslucent = false 

、すでには、サブクラス化して、設定しようとしました:

class SideQLPreviewController: QLPreviewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController?.navigationBar.isTranslucent = false 
    // Do any additional setup after loading the view. 
} 

しかし、まだありません成功 - 任意のアイデア?

答えて

0

もしあなたがQLPreviewControllerを提示してもナビゲーションコントローラは全くありません。このようなものは機能します。

class PreviewController: QLPreviewController { 
    var navigationBar: UINavigationBar? { 
     return view.recursiveSubviews.filter({ $0 is UINavigationBar }).first as? UINavigationBar 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     navigationBar?.isTranslucent = false 
    } 
} 

extension UIView { 
    var recursiveSubviews: [UIView] { 
     var recursiveSubviews: [UIView] = [] 
     for subview in subviews { 
      recursiveSubviews.append(subview) 
      recursiveSubviews.append(contentsOf: subview.recursiveSubviews) 
     } 
     return recursiveSubviews 
    } 
} 
関連する問題