It's always better if you write your own TabBar class to make sure you can do all the changes you want.
#import "ViewController.h"
@protocol TabBarDelegate;
@interface TabBar : UIView{
id<TabBarDelegate> delegate;
UIView *backgroundView;
UIButton *btn1;
UIButton *btn2;
UIImageView *img1;
UIImageView *img2;
UIView *hubHolder;
}
@property (nonatomic, retain) UIView *backgroundView;
@property (nonatomic, retain) id<TabBarDelegate> delegate;
@property (nonatomic, retain) UIButton *btn1;
@property (nonatomic, retain) UIButton *btn2;
@property (nonatomic, retain) UIImageView *img1;
@property (nonatomic, retain) UIImageView *img2;
- (id) initWithFrame:(CGRect)frame;
@end
@protocol TabBarDelegate<NSObject>
@optional
- (void) tabbarTapped:(int)index;
@end
You can easily define a view with buttons (button number depends on how many controllers you want to go by tab bar) and delegate to control if one of the buttons tapped. Since this is a UIView you can manipulate how it looks.
I hope it helps.