4

我正在使用SFSafariViewController访问从UITableViewController. 因为我的应用程序有一种非常轻盈的感觉,所以我在 中添加了以下代码行AppDelegate

self.window.tintColor = [UIColor whiteColor];

运行时SFSafariViewController,我得到以下信息:

在此处输入图像描述

无论如何我可以将Done按钮的颜色更改为蓝色(默认情况下)?

我在调用时尝试了以下SFSafariViewController但没有效果:

        [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];
        }];

这些都不起作用。

我当然可以将应用程序保留为默认设置并从 中取出白色设置AppDelegate,但我希望在应用程序中使用这种方法,因为蓝色在自定义主题中显得过于突出。

对此的任何指导将不胜感激。

4

2 回答 2

4

appearance您可以使用代理全局更改条形颜色:

尝试

[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UIBarButtonItem appearance] setTintColor:[UIColor blueColor]];

否则试试

  [self presentViewController:safariVC animated:YES completion:^{

         [safariVC.navigationBar setTintColor:[UIColor blueColor]];
    }];

否则试试

在 AppDelegate.m 函数中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

我输入了以下代码:

//SFSafariViewController
[[UINavigationBar appearanceWhenContainedIn:[SFSafariViewController class], nil] setBarTintColor:[UIColor blueColor]];
[[UINavigationBar appearanceWhenContainedIn:[SFSafariViewController class], nil] setTintColor:[UIColor blueColor]];

或添加您的 ViewDidLoad

[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]]; 

迅速

UINavigationBar.appearance().tintColor = UIColor.blueColor()
UIBarButtonItem.appearance().tintColor = UIColor.blueColor()

否则试试这个

self.presentViewController(safariVC, animated: true, completion: {() -> Void in
safariVC.navigationBar.tintColor = UIColor.blueColor()
})

或者喜欢

 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()
}

或者最后试试这个

  self.navigationController.navigationBar.tintColor = UIColor.whiteColor()
于 2015-11-02T17:15:04.837 回答
3

尝试 setPreferredControlTintColor 设置完成按钮的色调颜色

于 2016-10-04T09:35:12.633 回答