tags:

views:

590

answers:

5

Hi,

I have created a UITabBar and UITabBarItems without UITabBarController on it, now i want to know how to place an action on click of the UITabBarItem.What is the method i should use for action on UITabBarItem?

+1  A: 

Are you using a UINavigationController? If so, from the active view controller subclass you get the navigationItem and add the buttons to it, e.g.:

- (void) viewWillAppear:(BOOL)animated;
{
    [super viewWillAppear: animated];
    UIBarButtonItem * leftButtonItem = [[[UIBarButtonItem alloc] initWithTitle: @"Don't Show Again" style: UIBarButtonItemStyleBordered target: self action: @selector(permanentlyCloseWelcomeView)] autorelease];
    [[self navigationItem] setLeftBarButtonItem: leftButtonItem];
}
xyzzycoder
no... i'm not using any controller..
suse
A: 

Hope this Stackoverflow question will be useful for you.

All The Best.

Warrior
hi, i'm not using interface builder, i'm doing it programatically. so could you please tel mehow to handle the action of UITabbaritem.
suse
A: 

You can't set an action on a UITabBarItem object directly. Instead, your view controller should implement the following UITabBarDelegate method:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;

This method is called when the user selects a tab (i.e. UITabBarItem).

Shaggy Frog
+1  A: 

There is a better method than didSelectItem: for each TabBarItem you create an action:
[item1 setAction:@selector(pressItem1:)];
[item2 setAction:@selector(pressItem2:)];
[item3 setAction:@selector(pressItem3:)];
[item4 setAction:@selector(pressItem4:)];
and then you can use the new actions:
-(void)pressItem1:(UITabBarItem *) item1 {
// Here comes your code which
// occurs after pressing item1.
}

That works for me

wesimaster
A: 

Can you get away with using instances of UIToolbar and UIBarButtonItem instead? It could be more straightforward.

toolBar = [[UIToolbar alloc] init];
newPlayerItem = [[UIBarButtonItem alloc] initWithTitle:@"+"
                                    style:UIBarButtonItemStyleBordered
                                    target:self
                                    action:@selector(newPlayer:)];

NSArray *toolBarItemsArray = [[NSArray alloc] initWithObjects:newPlayerItem, nil];
[toolBar setItems:toolBarItemsArray];
[toolBarItemsArray release];
SpecialK