1

self.present()QLPreviewControllerとすると、NavigationBarの色が失われ、AppDelegateに実装されています。QLPreviewController NavigationBar barTintColor

UINavigationBar.appearance().isTranslucent = false 
    UINavigationBar.appearance().tintColor = UIColor.white 
    UINavigationBar.appearance().barTintColor = Colors.fifth // Blue color 
    UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white] 
    UINavigationBar.appearance().shadowImage = UIImage() 

QLPreviewController実装:

let preview = QLPreviewController() 
preview.dataSource = self 

func numberOfPreviewItems(in controller: QLPreviewController) -> Int { 
    return 1 
} 

func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem { 
    return fileURL! as QLPreviewItem 
} 

fileprivate func showDocument(fileId: Int) { 
    SVProgressHUD.show() 
    self.fileService.download(id: fileId) { 
     url, error in 

     if error == nil { 
      self.fileURL = url 
      if QLPreviewController.canPreview(self.fileURL! as QLPreviewItem) { 
       self.present(self.preview, animated: true, completion: nil) 
       SVProgressHUD.dismiss() 
      } else { 
       SVProgressHUD.showDismissableError(with: "Произошла ошибка во время чтения файла \(url!.lastPathComponent)") 
      } 
     } else { 
      SVProgressHUD.showDismissableError(with: error?.localizedDescription) 
     } 
    } 
} 

私はself.show()にしようとしたそのNavigationBarOKです! と同じ設定にするには、QLPreviewController's NavigationBarの色を設定します。これをプログラムで変更するにはどうすればよいですか?前もって感謝します!

答えて

0

まずそのルートビューコントローラとしてUINavigationControllerとあなたのQLPreviewControllerをインスタンス化します。次に、そのナビゲーションバーを表示することができます。これは、アプリケーションデリゲートクラスで設定したプロパティを持ちます。

let preview = QLPreviewController() 
    preview.dataSource = self 
    preview.currentPreviewItemIndex = 0 
    let navBar = UINavigationController(rootViewController: preview) 
    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(self.dismissQLPreviewController)) 
    preview.navigationItem.leftBarButtonItem = doneButton 
    self.present(navBar, animated: true) 
関連する問題