I am properly using following method to change tabbar icon color,
[tabBarController.tabBar setSelectedImageTintColor:[UIColor redColor]];
b
I didn't try it myself but I took a look at the UITabBar Class Reference. The property selectedImageTintColor is documented. So this means, you are allowed to use it. Normally Apple only rejects application that use undocumented (not public) APIs. So you are safe to use it.
You can see there too that the property is available in iOS 5 and later.