(NOTE: I see there are several similar questions on SO, but none of them seem to get at my specific issue of wanting to change the unselected appearance of
Are you up for some private API use?
Do this sometime after the tab bar has been populated:
for (UIView *v in self.tabBar.subviews)
if ([NSStringFromClass(v.class) isEqual:@"UITabBarButton"])
[v performSelector:@selector(_setUnselectedTintColor:)
withObject:[UIColor whiteColor]];
Usual warnings about private API apply: Apple would rather you not do this; if it breaks you get to keep both pieces; etc.
The example code is not particularly stealthy with regard to App Store review. Apple will catch it, as presented. Add your favorite stealth techniques to suit.
Works on at least iOS 7.0.1 and 7.1.