我创建了一个没有UITabBarController的UITabBar和UITabBarItems,现在我想知道如何在点击UITabBarItem时放置一个动作。我应该用什么方法对UITabBarItem采取行动?
答案 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/>
}
这对我有用