Iphone UIToolBar选定按钮状态

Iphone UIToolBar选定按钮状态,iphone,objective-c,xcode,ios,uitoolbar,Iphone,Objective C,Xcode,Ios,Uitoolbar,我有一个底部有工具栏的UItableView。工具栏上有两个按钮,分别是“水果”、“蔬菜”。单击它们将仅显示相应的类别 我已设法使显示功能正常工作,但我不知道如何在选择按钮时将其设置为selectedState 我创建了工具栏,如下所示 UIBarButtonItem *fruits = [[UIBarButtonItem alloc] initWithTitle:@"Fruits" style:UIBarButtonItemStyleBordered target:self action:@s

我有一个底部有工具栏的UItableView。工具栏上有两个按钮,分别是“水果”、“蔬菜”。单击它们将仅显示相应的类别

我已设法使显示功能正常工作,但我不知道如何在选择按钮时将其设置为selectedState

我创建了工具栏,如下所示

UIBarButtonItem *fruits = [[UIBarButtonItem alloc] initWithTitle:@"Fruits" style:UIBarButtonItemStyleBordered target:self action:@selector(fruitsClicked:)];
UIBarButtonItem *vegetables = [[UIBarButtonItem alloc] initWithTitle:@"Vegetables" style:UIBarButtonItemStyleBordered target:self action:@selector(vegetablesClicked:)];
NSArray *items = [NSArray arrayWithObjects: fruits,vegetables,nil];
[fruits release];
[vegetables release];
[self setToolBarItems:items];
选择者喜欢

-(void)fruitsClicked:(id)sender{
     //code here
}
由于我较早地释放了按钮,因此无法设置

fruits.enabled=NO;

任何帮助都将不胜感激。

我认为添加单独的按钮来实现这一点不是一个好的设计和策略,您应该使用UISegmentad控件,这是一种组件设计,可以满足您的需要:在X中选择一个段

您可以这样使用它(例如选择第一项):

和获取所选项目:

segment.selectedSegmentIndex

我认为添加单独的按钮并不是一个好的设计和策略,您应该使用UISegmentad控件,这是一个组件设计,可以满足您的需要:在X中选择一个段

您可以这样使用它(例如选择第一项):

和获取所选项目:

segment.selectedSegmentIndex

我对UIToolBars没有任何经验,但据我所见,选择器获取发送者的ID,对吗?您可以使用它访问单击的按钮,然后将其设置为选中状态。

我对UIToolBars没有任何经验,但据我所见,选择器可以获取发件人的ID,对吗?您可以使用它访问单击的按钮,然后将其设置为选中状态。

传递给您的FructClicked处理程序的sender参数将是指向UIBarButtonim的指针。你可以这样施展:

[((UIBarButtonItem*)sender) setEnabled:NO];

但是,一旦该按钮被禁用,它将不再接受点击(即,您无法再次点击以重新启用它)。我将为按钮使用customView,并自己实现启用/禁用外观。

传递给您的FructClicked处理程序的sender参数将是指向UIBarButtonim的指针。你可以这样施展:

[((UIBarButtonItem*)sender) setEnabled:NO];

但是,一旦该按钮被禁用,它将不再接受点击(即,您无法再次点击以重新启用它)。我会为按钮使用自定义视图,并自己实现启用/禁用外观。

如果您确实只想实现一组按钮,其中一次只选择一个按钮,则应遵循Ludovic的建议,并使用UISegmentedControl。是..同意。如何将分段控件添加到工具栏。?如果您确实只想实现一组按钮,其中一次只选择一个按钮,则应遵循Ludovic的建议并使用UISegmentedControl。是..同意。如何将分段控件添加到工具栏。?如何将UISegementedControl添加到工具栏?[工具栏设置项:[NSArray arrayWithObjects:segment,nil]];对不起,我把你弄丢了。你能告诉我如何创建数组吗。它是否像
NSArray*items=[NSArray arrayWithObjects:@“水果”、“蔬菜”]如果是,如何设置选择器方法?@Narayanan:您可以将UISegmentedControl从XIB拖放到工具栏上。如何将UISegmentedControl添加到工具栏?[toolbar setItems:[NSArray arrayWithObjects:segment,nil];对不起,我把你弄丢了。你能告诉我如何创建数组吗。它是否像
NSArray*items=[NSArray arrayWithObjects:@“水果”、“蔬菜”]如果是,我如何设置选择器方法?@Narayanan:您可以将UISegmentedControl从XIB拖放到工具栏上。无法从UIBarButtonItem访问标准UIButton,因此也无法
选择它。无法从UIBarButtonItem访问标准UIButton,因此,也没有办法选择它。