Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 以编程方式修改UIToolBar项_Iphone_Objective C_Xcode_Interface Builder_Uitoolbar - Fatal编程技术网

Iphone 以编程方式修改UIToolBar项

Iphone 以编程方式修改UIToolBar项,iphone,objective-c,xcode,interface-builder,uitoolbar,Iphone,Objective C,Xcode,Interface Builder,Uitoolbar,我已经使用Interface Builder创建了一个工具栏。我在工具栏中有许多按钮,它们连接到各种iAction方法。我想做的是,当选择一个项目时,通过改变它的色调,在视觉上使另一个项目变灰 我如何获得对巴布顿教派的引用?我看不出我在哪里可以给每个标签一个唯一的名称,以便我可以具体地引用它 更新 我为工具栏创建了一个IBOutlet,现在我可以访问它了。不幸的是,当我试图设置tintColor时,它崩溃了。这是我的密码: UIBarButtonItem *penButton = [_toolB

我已经使用Interface Builder创建了一个工具栏。我在工具栏中有许多按钮,它们连接到各种
iAction
方法。我想做的是,当选择一个项目时,通过改变它的色调,在视觉上使另一个项目变灰

我如何获得对
巴布顿教派的引用?我看不出我在哪里可以给每个标签一个唯一的名称,以便我可以具体地引用它

更新

我为工具栏创建了一个
IBOutlet
,现在我可以访问它了。不幸的是,当我试图设置
tintColor
时,它崩溃了。这是我的密码:

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

penButton.tintColor = [UIColor darkGrayColor];
crossButton.tintColor = [UIColor whiteColor];
引发的错误为:

由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:“-[UIBARBUTTONIM setTintColor::无法识别的选择器已发送到实例0x631df50'

试试这个:

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

我如何给它命名为myUIToolbar?我在interface builder中找不到该选项!在IB中,将工具栏中的新引用插座添加到.h文件中,并根据您的需要命名它。在编写之前,您已经了解了这一点,但是,当我尝试更改色调时,它会崩溃-我将更新我的问题,请将崩溃日志添加到您的问题中。您的代码适合我。将其分为几个部分:首先将UIBarButtomItem设置为局部变量,然后更改色调颜色。您测试的是哪个iOS版本?您确定要在运行5.0或更高版本的设备或模拟器上进行测试吗?如果您在低于5.0的设备上运行此代码,它将因此错误而崩溃。实际上不是。尽管在构建配置中将目标设置为5,但模拟器设置为4.3。有趣的是,当我现在运行我的项目时,我的主listview中没有显示任何内容(尽管列表显示),因此我无法实际测试这是否修复了它!NJones-回答这个问题,这样我就可以接受了Hanks,但实际上是tomasz的回答回答了你关于如何获取工具栏项引用的问题。我之所以这么做,是因为UIBarButtonItems确实能够识别iOS 5中的选择器setTintColor,所以逻辑上的结论是您没有在iOS 5中运行。