如何为UITabBarItem创建操作?

时间:2010-03-25 05:50:39

标签: iphone

我创建了一个没有UITabBarController的UITabBar和UITabBarItems,现在我想知道如何在点击UITabBarItem时放置一个动作。我应该用什么方法对UITabBarItem采取行动?

4 个答案:

答案 0 :(得分:23)

您无法直接在UITabBarItem对象上设置操作。相反,您的视图控制器应实现以下UITabBarDelegate方法:

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

当用户选择标签(即UITabBarItem)时,会调用此方法。

答案 1 :(得分:2)

您使用的是UINavigationController吗?如果是这样,从活动视图控制器子类中获取navigationItem并向其添加按钮,例如:

- (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];
}

答案 2 :(得分:1)

您可以使用UIToolbar和UIBarButtonItem的实例吗?它可能更直接。

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];

答案 3 :(得分:-2)

有一个比didSelectItem更好的方法: 为每个TabBarItem创建一个动作:
[item1 setAction:@selector(pressItem1:)];
[item2 setAction:@selector(pressItem2:)];
[item3 setAction:@selector(pressItem3:)];
[item4 setAction:@selector(pressItem4:)];
然后你可以使用新的行动:

-(void)pressItem1:(UITabBarItem *) item1 {<br/>
    // Here comes your code which<br/>
    // occurs after pressing item1.<br/>
}

这对我有用