-->

UIDocumentPickerViewController - How to set the na

2019-03-18 18:49发布

问题:

I want to set the navigation bar background color of my DocumentPicker to be the same as the rest of my application.

    let filePicker = UIDocumentPickerViewController(documentTypes: ["public.content"], in: .import)
    filePicker.delegate = self
    filePicker.navigationController?.navigationBar.barTintColor = self.theme.navigationBarColor

    self.present(filePicker, animated: true, completion: nil)

doesn't work.

Other things I've tried:

Use UINavigationBar.appearance().backgroundColor = self.theme.navigationBarColor - doesn't work and looks too much like a workaround instead of a proper way if it works.

Edit: Right now our app is redesigned to use the primary color as navigation bar text color, and have the same background color as the DocumentPicker. Answers will still be appreciated.

回答1:

This will change the color of the text like "Cancel".

UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blue], for: .normal)

and this will change the arrow back color.

UIButton.appearance().tintColor = UIColor.blue

Don't forget to set it back to your original colors after closing the picker if it required.