I am using the SFSafariViewController
to access a website called from a UITableViewController
. Because my app has a very light feel attached to it, I have added the following line of code in the AppDelegate
:
self.window.tintColor = [UIColor whiteColor];
When running the SFSafariViewController
, I get the following:
Is there anyway I can change the colour of the Done
button to Blue (as per default)?
I've tried the following when calling the SFSafariViewController
but to no effect:
[self presentViewController:safariVC animated:YES completion:^{
safariVC.navigationController.navigationItem.rightBarButtonItem.tintColor = [UIColor blueColor];
[self presentViewController:safariVC animated:YES completion:^{
safariVC.navigationController.navigationBar.tintColor = [UIColor blueColor];
}];
Neither of those work.
I could of course leave the app as default and take out the white setting from the AppDelegate
, but I want this approach within the app because Blue just stands out too much with custom themes.
Any guidance on this would be really appreciated.
You can change bar colours globally using appearance
proxy:
try
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UIBarButtonItem appearance] setTintColor:[UIColor blueColor]];
else try
[self presentViewController:safariVC animated:YES completion:^{
[safariVC.navigationBar setTintColor:[UIColor blueColor]];
}];
else try
in AppDelegate.m in the function:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
I've entered the following code:
//SFSafariViewController
[[UINavigationBar appearanceWhenContainedIn:[SFSafariViewController class], nil] setBarTintColor:[UIColor blueColor]];
[[UINavigationBar appearanceWhenContainedIn:[SFSafariViewController class], nil] setTintColor:[UIColor blueColor]];
or add in your ViewDidLoad
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
Swift
UINavigationBar.appearance().tintColor = UIColor.blueColor()
UIBarButtonItem.appearance().tintColor = UIColor.blueColor()
else try this
self.presentViewController(safariVC, animated: true, completion: {() -> Void in
safariVC.navigationBar.tintColor = UIColor.blueColor()
})
or do like
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
UINavigationBar.appearanceWhenContainedIn(SFSafariViewController.self, nil).barTintColor = UIColor.blueColor()
UINavigationBar.appearanceWhenContainedIn(SFSafariViewController.self, nil).tintColor = UIColor.blueColor()
}
or finally try this
self.navigationController.navigationBar.tintColor = UIColor.whiteColor()
Try
setPreferredControlTintColor
to set tint color of Done button