Changing the Tint Color of UIBarButtonItem

后端 未结 8 1888
暗喜
暗喜 2020-12-15 03:31

I have a project using Storyboards and whenever I push a view controller with a segue, the dynamically created bar button item is always blue.

8条回答
  •  爱一瞬间的悲伤
    2020-12-15 03:46

    In iOS 7, to set the color of all barButtonItems in your app, set the tintColor property on the application's window in the AppDelegate.

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window.tintColor = [UIColor whiteColor];
        return YES;
    }
    

    More detailed info in Apple's iOS 7 UI Transition Guide (Specifically under the 'Using Tint Color` section).

    ***OR***

    Based on some of the comments, you can also achieve this with the UINavigationBar appearance proxy. This will affect the tintColor of only UIBarButtonItems, as opposed to setting the tintColor on the window and affecting all subviews of that window.

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        if([UINavigationBar conformsToProtocol:@protocol(UIAppearanceContainer)]) {
            [UINavigationBar appearance].tintColor = [UIColor whiteColor];
        }
    
        return YES;
    }
    

提交回复
热议问题