Как я могу получить следующий IBAction, чтобы повлиять на следующую пустую IBOutet UILabel? - PullRequest
0 голосов
/ 30 июля 2011

У меня 12 кнопок с тегами 0-11.Когда пользователь нажимает кнопку, тег вставляется в первый из 12 выходов с этикетками.Я хочу, чтобы следующая нажатая кнопка автоматически вставляла свой тег в следующую доступную розетку.На данный момент тег просто добавляет себя в первый выход.Я пробовал множество исправлений, но безрезультатно.

На данный момент это моя реализация:

-(IBAction)enterNumber:(id)sender {
cell1 = cell1+(int)[sender tag];
label1.text = [NSString stringWithFormat:@"%i",cell1];
}

Моя проблема заключается в том, чтобы следующий IBAction отображался только в cell2 (я полагаю, эта помощь приведет меня к использованию исправления для cell3-cell12Ни одна из рекомендаций моих книг не обеспечивает подходящих процессов для моих ограниченных знаний.

Отредактировано после Данилло

Я не рассматривал IBOutletCollection, я не слышал об этом! Я обязательно попробуючтобы использовать его. Для других, кто хотел бы получить более ясный вопрос к моей проблеме, я попытаюсь представить часть экрана, с которой пользователь будет взаимодействовать. Верхние числа - фиксированные кнопки. Нижние квадраты - то, где регистрируются теги нажатых верхних кнопок.последовательно к серии. Я только что нажал (4). Я хотел бы, чтобы следующий щелчок любой верхней кнопки регистрировался во втором нижнем квадрате, но происходит то, что целое число добавляется к целому числу в первом поле.

(1) - (2) - (3) - (4) - (5) - (6)

[4] [_] [_] [_] [_][_] [_] [_][_] [_] [_]

Ответы [ 2 ]

1 голос
/ 30 июля 2011

Звучит так, будто вы пытаетесь предоставить контент последовательно серии ярлыков.Если это правильно, я бы выбрал такой подход:

iOS 4 и более поздние версии поддерживают коллекции розеток, которые предоставляются для использования в качестве массивов, заполненных объектами, которые вы назначили.

Так что, как только вы пометили свои кнопки, пометьте свои ярлыки.Затем в файле .h объявите коллекцию розеток следующим образом:

@property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labels;

Элемент управления перетаскивает каждую метку, чтобы связать ее с этой коллекцией розеток.

Затем, когда пришло время назначить контентдля метки, переберите коллекцию:

for (UILabel *label in self.labels)
{
    if (label.tag == whateverIntYouCareAbout)
    {
       //Do stuff
       break;
    }
}
0 голосов
/ 01 августа 2011

Из того, что вы сказали, "но происходит то, что целое число добавляется к целому числу в первом поле". Я считаю, что ваша проблема, вы можете отобразить номер только в первом ярлыке. Это потому, что в вашем методе вы устанавливаете текст для метки как label1.text = someValue;, используя cell1 Так что это label1, который всегда обновляется. Вы должны получить ярлык для соответствующего тега кнопки. Например, если ваш тег равен 3, вы должны изменить текст label3, если его 7, то изменить текст label7. Также убедитесь, что ваша ячейка должна быть изменена соответствующим образом. Это то, что я понял из того, что вы упомянули. Поправь меня, если я ошибаюсь.

...