Reputation: 5510
I have a UITabBar
on a UIViewController
, I have set the UITabBar
delegate and this is how I set the UITabBar up inside my viewDidLoad:
method
// Load UITabBar for FindModels View & call tabBar delegates
findModelsTabBar = [[UITabBar alloc] init];
findModelsTabBar.delegate = self; // This sets up tabbardelegate method
[findModelsTabBar setTranslucent:NO];
findModelsTabBar.backgroundColor = [UIColor lightGrayColor];
findModelsTabBar.frame = CGRectMake(0.0, screenRectTabBar.size.height - 110, screenRectTabBar.size.width, 45.0);
[[UITabBar appearance] setBarTintColor:[UIColor colorWithRed:colorController.lgRed/255.0 green:colorController.lgGreen/255.0 blue:colorController.lgBlue/255.0 alpha:1.0]];
[self.view insertSubview:findModelsTabBar aboveSubview:self.tableView]; // add tabBar to the mainView (appears at the bottom of the screen)
Then I have my delegate method like so
#pragma TabBar delegate
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
switch (item.tag) {
case 0:
{
NSLog(@"0");
}
break;
case 1:
{
NSLog(@"1");
}
break;
case 2:
{
NSLog(@"2");
FindModelsViewController *findModelsViewController = [[FindModelsViewController alloc] initWithNibName:@"FindModelsViewController" bundle:nil];
// Sets the back button for the new view that loads (this overrides the usual parentview name with "Back")
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationController pushViewController:findModelsViewController animated:YES];
// Set Delegates so you can get the data back
[findModelsViewController setDelegate:self];
}
break;
default:
break;
}
}
I would like to know how to create a UITabBar Item with an Image and when clicked would call that tabBar delegate.
Upvotes: 0
Views: 595
Reputation: 1029
You can easily write some code like:
UITabBarItem * item0 = [[UITabBarItem alloc] initWithTitle:@"Page 1"
image:[UIImage imageNamed:@"page1_image_normal"]
selectedImage:[UIImage imageNamed:@"page1_image_selected"]];
[item0 setTag:0];
UITabBarItem * item1 = [[UITabBarItem alloc] initWithTitle:@"Page 2"
image:[UIImage imageNamed:@"page2_image_normal"]
selectedImage:[UIImage imageNamed:@"page2_image_selected"]];
[item1 setTag:1];
UITabBarItem * item2 = [[UITabBarItem alloc] initWithTitle:@"Page 3"
image:[UIImage imageNamed:@"page3_image_normal"]
selectedImage:[UIImage imageNamed:@"page3_image_selected"]];
[item2 setTag:2];
[findModelsTabBar setItems:@[item0, item1, item2]];
Upvotes: 1
Reputation: 2908
I guess all of the below links will help you, and as far as the delegate is concerned, when you get to make the UITabBarItem just set tags to each of them and then manipulate your conditions.
iPhone instantiating a UITabBarItem programmatically
Setting custom UITabBarItem programatically?
How to programmatically add UITabBarItem's Identifier type in iOS?
Tutorial to build a tab bar programmatically
Upvotes: 1