Для этого вам нужно создать класс, родительским классом которого будет UITabBar.
Вот его файл .h:
#import <UIKit/UIKit.h>
@interface ImageTabBar : UITabBar
{
}
@end
А вот его файл .m:
#import "ImageTabBar.h"
#import "GlobalVars.h"
@implementation ImageTabBar
- (void) drawRect:(CGRect)rect
{
UIImage *tabImage;
switch (intTabBarSelectedIndex)
{
case 0:
tabImage=[UIImage imageNamed:@"TabBarImageTwitter.png"];
[tabImage drawAtPoint:CGPointMake(0, 0)];
break;
case 1:
tabImage=[UIImage imageNamed:@"TabBarImageCalender.png"];
[tabImage drawAtPoint:CGPointMake(0, 0)];
break;
case 2:
tabImage=[UIImage imageNamed:@"TabBarImageStanding.png"];
[tabImage drawAtPoint:CGPointMake(0, 0)];
break;
case 3:
tabImage=[UIImage imageNamed:@"TabBarImageNews.png"];
[tabImage drawAtPoint:CGPointMake(0, 0)];
break;
case 4:
tabImage=[UIImage imageNamed:@"TabBarImagePhotos.png"];
[tabImage drawAtPoint:CGPointMake(0, 0)];
break;
default:
break;
}
}
- (void)dealloc
{
[super dealloc];
}
@end
В инструкции:
switch (intTabBarSelectedIndex)
intTabBarSelectedIndex будет определен как глобальная переменная и имеет целочисленный тип.
Теперь перейдем к классу TabBarController.
Вот его .h файл
#import <UIKit/UIKit.h>
@class ImageTabBar;
@interface TabBarViewController : UIViewController <UITabBarControllerDelegate>
{
ImageTabBar *objOfImageTabBar;
IBOutlet UITabBarController *uiTabBarC;
}
@property (nonatomic, retain) IBOutlet UITabBarController *uiTabBarC;
- (void)setNeedsDisplay;
@end
А вот его .m файл
Включите следующие функции в ваш файл TabBarController '.m:
- (void)viewDidLoad
{
[self.navigationController setNavigationBarHidden:YES];
self.view = uiTabBarC.view;
uiTabBarC.selectedIndex = intTabBarSelectedIndex;
uiTabBarC.delegate = self;
[super viewDidLoad];
}
#pragma mark TaBarViewController delegate
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
intTabBarSelectedIndex = uiTabBarC.selectedIndex;
UITabBar *aTabBar = tabBarController.tabBar;
[aTabBar setNeedsDisplay];
}
- (void)setNeedsDisplay
{
}
Точно так же, ваш код будет работать отлично.