This is for Custom Tabbar Controller. In this code you can give your Tabbar Button Image and when you click one Button that buttom will be changed according to your image.
Set Delegate Method for UITabBarControllerDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self creationTabBar];
[self.window makeKeyAndVisible];
return YES;
}
-(void)creationTabBar
{
UINavigationController *myNavigationController;
// Create initialized instance of UITabBarController
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.view.frame = CGRectMake(0, 0, self.window.bounds.size.width, self.window.bounds.size.height);
// Create initialized instance of NSMutableArray to hold our UINavigationControllers
NSMutableArray *tabs = [[NSMutableArray alloc] init];
World_ViewController *WorldScreen;
Home_ViewController *HomeScreen;
Favourite_ViewController *FavouriteScreen;
Rank_ViewController *RankScreen;
Setting_ViewController *SettingScreen;
UILabel *item1, *item2, *item3, *item4, *item5;
// Create first UIViewController
WorldScreen = [[World_ViewController alloc] initWithNibName:@"World_ViewController" bundle:nil];
HomeScreen = [[Home_ViewController alloc] initWithNibName:@"Home_ViewController" bundle:nil];
FavouriteScreen= [[Favourite_ViewController alloc] initWithNibName:@"Favourite_ViewController" bundle:nil];
RankScreen = [[Rank_ViewController alloc] initWithNibName:@"Rank_ViewController" bundle:nil];
SettingScreen = [[Setting_ViewController alloc] initWithNibName:@"Setting_ViewController" bundle:nil];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
item1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 430, 64, 50)];
item2 = [[UILabel alloc] initWithFrame:CGRectMake(64, 430, 64, 50)];
item3 = [[UILabel alloc] initWithFrame:CGRectMake(128, 430, 64, 50)];
item4 = [[UILabel alloc] initWithFrame:CGRectMake(195, 430, 64, 50)];
item5 = [[UILabel alloc] initWithFrame:CGRectMake(256, 430, 64, 50)];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:HomeScreen];
[myNavigationController setNavigationBarHidden:YES];
[tabs addObject:myNavigationController];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:WorldScreen];
[myNavigationController setNavigationBarHidden:YES];
[tabs addObject:myNavigationController];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:FavouriteScreen];
[myNavigationController setNavigationBarHidden:YES];
[tabs addObject:myNavigationController];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:RankScreen];
[myNavigationController setNavigationBarHidden:YES];
[tabs addObject:myNavigationController];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:SettingScreen];
[myNavigationController setNavigationBarHidden:YES];
[tabs addObject:myNavigationController];
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tabbar.png"]];
[tabBarController setViewControllers:tabs];
[tabBarController setDelegate:self];
[item1 setText:@"item1"];
[item1 setBackgroundColor:[UIColor grayColor]];
[tabBarController.view addSubview:item1];
item1.tag = 101;
[item2 setText:@"item2"];
[item2 setBackgroundColor:[UIColor grayColor]];
[tabBarController.view addSubview:item2];
item2.tag = 102;
[item3 setText:@"item3"];
[item3 setBackgroundColor:[UIColor grayColor]];
[tabBarController.view addSubview:item3];
item3.tag = 103;
[item4 setText:@"item4"];
[item4 setBackgroundColor:[UIColor grayColor]];
[tabBarController.view addSubview:item4];
item4.tag = 104;
[item5 setText:@"item5"];
[item5 setBackgroundColor:[UIColor grayColor]];
[tabBarController.view addSubview:item5];
item5.tag = 105;
[self.window setRootViewController:self.viewController];
}
- (void)tabBarController:(UITabBarController *)tabBarControllerref didSelectViewController:(UIViewController *)viewController
{
UILabel *item1 = (UILabel*)[tabBarControllerref.view viewWithTag:101];
UILabel *item2 = (UILabel*)[tabBarControllerref.view viewWithTag:102];
UILabel *item3 = (UILabel*)[tabBarControllerref.view viewWithTag:103];
UILabel *item4 = (UILabel*)[tabBarControllerref.view viewWithTag:104];
UILabel *item5 = (UILabel*)[tabBarControllerref.view viewWithTag:105];
[item1 setFrame: CGRectMake(0, 430, 64, 50)];
[item2 setFrame: CGRectMake(64, 430, 64, 50)];
[item3 setFrame: CGRectMake(128, 430, 64, 50)];
[item4 setFrame: CGRectMake(195, 430, 64, 50)];
[item5 setFrame: CGRectMake(256, 430, 64, 50)];
if([tabBarControllerref selectedIndex] == 0)
{
[item1 setTextColor:[UIColor redColor]];
[item2 setTextColor:[UIColor greenColor]];
[item3 setTextColor:[UIColor greenColor]];
[item4 setTextColor:[UIColor greenColor]];
[item5 setTextColor:[UIColor greenColor]];
}
else if ([tabBarControllerref selectedIndex] == 1)
{
[item1 setTextColor:[UIColor greenColor]];
[item2 setTextColor:[UIColor redColor]];
[item3 setTextColor:[UIColor greenColor]];
[item4 setTextColor:[UIColor greenColor]];
[item5 setTextColor:[UIColor greenColor]];
}
else if ([tabBarControllerref selectedIndex] == 2)
{
[item1 setTextColor:[UIColor greenColor]];
[item2 setTextColor:[UIColor greenColor]];
[item3 setTextColor:[UIColor redColor]];
[item4 setTextColor:[UIColor greenColor]];
[item5 setTextColor:[UIColor greenColor]];
}
else if ([tabBarControllerref selectedIndex] == 3)
{
[item1 setTextColor:[UIColor greenColor]];
[item2 setTextColor:[UIColor greenColor]];
[item3 setTextColor:[UIColor greenColor]];
[item4 setTextColor:[UIColor redColor]];
[item5 setTextColor:[UIColor greenColor]];
}
else if ([tabBarControllerref selectedIndex] == 4)
{
[item1 setTextColor:[UIColor greenColor]];
[item2 setTextColor:[UIColor greenColor]];
[item3 setTextColor:[UIColor greenColor]];
[item4 setTextColor:[UIColor greenColor]];
[item5 setTextColor:[UIColor redColor]];
}
}