我有六个屏幕按钮,其标题需要与NSMutableArray
中的六个元素相对应,当数组中的值发生变化时,我还需要用它来更改标题。我无法弄清楚如何创建不断更新到按钮的行,我仍然对 objective-c development 以及 Xcode 以及
我还需要确保当数组的特定索引没有值时,无法单击该按钮
这是其中一个按钮
的示例- (IBAction)card1Pressed:(id)sender {
if (self.userHasEnteredFirstNumber) {
if (!self.userHasEnteredSecondNumber) {
self.secondNumber = [sender currentTitle];
}
}
else{
self.firstNumber = [sender currentTitle];
}
}
最终目标是让用户按两个按钮,然后选择天气添加,减去,乘以或 他们。在他们选择这四个操作中的一个之后,将删除按钮在数组中分配的值,并替换为新数字。因此,在他们这样做之后,阵列中只剩下5个数字,然后是4,然后是3 .....等等。
将绘制数字并将其添加到标题为 currentHand
的NSMutable
数组中
更新:使用UIOutletCollection我将按钮链接到这样的方法 图片的链接在这里“抱歉无法直接发布它,但新用户必须具有10的声誉才能” link to photo of declaration and implementation with interface-builder of IBOutletCollection
这是对的吗?
关于IBOutletCollection的头文件的代码如下“请注意,这已连接到我想在界面构建器中使用它的六个按钮,它的图片显示在上面”
@property (nonatomic,retain) IBOutletCollection (UIButton)NSArray *buttonArray;
关于IBOutletController的实现文件中的代码如下
@ synthesize buttonArray = _buttonArray;
答案 0 :(得分:2)
您想要使用键值观察,请从Apple文档中查看: https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i
答案 1 :(得分:0)
好的,基本上你有一个'Button'-Array,其'Caption'由NSMutableArray提供,可以很容易地改变,对吗?
现在,这只是我的工作方式,可能会有更好的解决方案,但这里有:
你需要一个'更改'界面,称为每次时间,你的NSMutableArray会发生一些事情。例如(因为我不知道你的数组究竟是什么):
- (void) ChangeArray:(int)IDofElement (NSString *)newValue {
[arr replaceObjectAtIndex:IDofElement withObject:newValue]; //Updates/Empties the indexed Element.
if(newValue != nil) {
[buttons[IDOfElement] setText:newValue];
}
buttons[IDOfElement].enabled = (newValue != nil); //Makes Button 'clickable'
}
像这样,每次更改你的数组中的值时,相应的标题也会更新。当然,你需要一组按钮才能工作,但我不认为这是一个大问题。
另一种可能的解决方案:保存对存储在数组中的对象内部按钮的引用,每当更改值时,也要更改按钮的标题。
这有帮助吗?请注意,这不是“完美的解决方案”,而是我想出的东西。
请注意,这只是我的头脑,可能在某些方面有缺陷。但它应该能指出你的大方向。