HurkNburkS
HurkNburkS

Reputation: 5510

TabBarItems for UITabBar

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

Answers (2)

ismailgulek
ismailgulek

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

Harsh
Harsh

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.

Adding a UITabBar and tabbaritems to the UITabBar through code ( NOTE: I don't want to implement TabBarController )

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

Related Questions