如何将按钮标题绑定到数组IOS中的特定值?

时间:2012-07-23 18:28:26

标签: objective-c uibutton nsmutablearray

我有六个屏幕按钮,其标题需要与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;

2 个答案:

答案 0 :(得分:2)

答案 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'
}

像这样,每次更改你的数组中的值时,相应的标题也会更新。当然,你需要一组按钮才能工作,但我不认为这是一个大问题。

另一种可能的解决方案:保存对存储在数组中的对象内部按钮的引用,每当更改值时,也要更改按钮的标题。

这有帮助吗?请注意,这不是“完美的解决方案”,而是我想出的东西。

请注意,这只是我的头脑,可能在某些方面有缺陷。但它应该能指出你的大方向。