2012-01-08 121 views
2

我已经使用Interface Builder创建了一个工具栏。我在工具栏中有多个按钮,可以连接到各种IBAction方法。我想要做的是,在选择一个项目时,通过改变它的色调,在视觉上灰掉另一个项目。以编程方式修改UIToolBar项目

如何获得对BarButtonItem的参考?我无法看到我可以在哪里给每个标签一个独特的名称,以便我可以专门参考它。

更新

我创建了工具栏的IBOutlet,所以我现在有存取权限给它。不幸的是,当我尝试设置tintColor时,它崩溃了。这里是我的代码:

UIBarButtonItem *penButton = [_toolBar.items objectAtIndex:3]; 
UIBarButtonItem *crossButton = [_toolBar.items objectAtIndex:4]; 

penButton.tintColor = [UIColor darkGrayColor]; 
crossButton.tintColor = [UIColor whiteColor]; 

引发的错误:

终止应用程序由于未捕获的异常 'NSInvalidArgumentException' 的,理由是:“ - [的UIBarButtonItem setTintColor:]:无法识别的选择发送到实例0x631df50 “

+0

您测试的是哪个iOS版本? – NJones 2012-01-08 14:17:16

+0

当前定位5.0 – Chris 2012-01-08 14:36:03

+1

您确定您在运行5.0或更高版本的设备或模拟器上进行测试吗?如果你在5.0以下的设备上运行这个代码,它将会崩溃并出现这个确切的错误。 – NJones 2012-01-08 15:01:33

回答

6

试试这个:

NSArray *items = [myUIToolbar items]; 
for (UIBarButtonItem *barButton in items) { 
    //do something with button 
} 
+0

我如何给它起个名字myUIToolbar?我无法在界面生成器中找到选项! – Chris 2012-01-08 13:19:42

+0

在IB中添加从工具栏到您的.h文件的新引用出口,并将其命名为您想要的名称。 – 2012-01-08 13:23:34

+0

刚才在写这个之前就明白了,但是当我尝试改变色彩时,它会崩溃 - 我会更新我的问题 – Chris 2012-01-08 13:27:33

相关问题