22
votes

Have I overlooked something in just using the Global Tint to set the apps overall tint?

My App that worked in IOS 7.06 has suddenly changed today after IOS 7.1 Update.

Basic Storyboard, Tab based App with Global Tint (Orange) set in storyboard in IB.

Today updated to IOS 7.1 IPhone 5S and it is showing the standard blue tint

IPhone 4 IOS 7.06, same app TabBar tint is as it should be.

Had to set as below

[[UITabBar appearance] setTintColor:[UIColor orangeColor]];

in the TabBarControllers ViewDidLoad to correct the issue.

Could it be I have something else set incorrectly?

2
Confirmed by creating a brand new Tab Bar Project, Storyboard, Global Tint set in IB to green, tabs are blue. Looks like I answered my own question. - Tis SaxInnit
Call me crazy but it looks like this is still happening on the iOS 8 official release... - Andy Ibanez

2 Answers

12
votes

This is a known bug in the 7.1 betas which was never fixed in the final release.

Like you, I have had the same problem and had to set it manually as a fix.

It is recommended that if you want to set a global tint color, to do so in -application:will/didFinishLaunchingWithOptions:. Alternatively, if you want specific colors for each view controller, to do so in prepareForSeque:.

Personally I have tried setting it in -viewWillAppear:animated: in my UINavigationController root view and it appears to work fine.

See the devforum thread here

0
votes

Swift code that works under iOS 11 (in AppDelegate's didFinishLaunching):

application.windows[0].rootViewController?.view.tintColor = UIColor.black