How to change SFSafariViewController ToolBar color
There are two ways:
let resetPasswordSafari = SFSafariViewController(url: url, entersReaderIfAvailable: true)
resetPasswordSafari.preferredBarTintColor = .mainColor
resetPasswordSafari.preferredControlTintColor = .black
And:
class ResetPasswordSafariViewController: SFSafariViewController {
override init(url URL: URL, entersReaderIfAvailable: Bool) {
super.init(url: URL, entersReaderIfAvailable: entersReaderIfAvailable)
delegate = self
preferredBarTintColor = .blue
preferredControlTintColor = .black
}
}
// MARK: - SFSafariViewControllerDelegate
extension ResetPasswordSafariViewController: SFSafariViewControllerDelegate {
internal func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
controller.dismiss(animated: true)
}
}
Good luck all!
Updated Answer for iOS 10 API
SFSafariViewController
now has preferredBarTintColor
and preferredControlTintColor
properties to control how the toolbars look.
Original Answer
SFSafariViewController
renders off-process. You can only change the tint color, but not bar style or bar tint color.
To set the tint color, set the Safari controller's view's tint color like so:
let sfController = SFSafariViewController(URL: url, entersReaderIfAvailable: true)
sfController.view.tintColor = UIColor.redColor()
navigationController?.showViewController(sfController, sender: self)