I have a simple piece of code that places a background image on the tabBar.
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabBG.png"]];
[self.tabBarController.tabBar insertSubview:imageView atIndex:0];
[imageView release];
This works fine in iOS 4 but when testing in iOS 5, it doesn’t work.
I’m trying to do the following:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabBG.png"]];
NSString *reqSysVer = @"4.3";
NSString *iOSVersion = [[UIDevice currentDevice] systemVersion];
if ([iOSVersion compare:reqSysVer options:NSNumericSearch] !=NSOrderedDescending) {
// code for iOS 4.3 or below
[self.tabBarController.tabBar insertSubView:imageView atIndex:0];
}
else {
// code for iOS 5
[self.tabBarController.tabBar insertSubView:imageView atIndex:1];
}
[imageView release];
Alas, this isn’t working… Can anyone offer a solution?
iOS5 offers the UIAppearance Proxy.
Also, it’s best practice to switch your code based on the capability (in this case it’s respondsToSelector) instead of iOS version – that’s a fragile assumption (who’s to say it doesn’t change in the future).
You can set it for just that instance or globally for all tab bars: