Две кнопки «Выбор», используя те же методы - PullRequest
0 голосов
/ 13 апреля 2011

Итак, в моем приложении для iPhone, которое я создаю, у меня есть две кнопки, которые будут назначены для «Варианта 1» и «Варианта 2», чтобы пользователи могли выбирать свою дату и время (например, чтобы назначить встречу). ).

Вариант 1 имеет ActionSheet для отображения даты, и для него устанавливается, где, когда пользователь нажимает «Выбрано», он автоматически переходит к другому методу, который у меня есть, который отображает два раза, которые запрограммированы (Как классы NSArray).

В чем мой вопрос, я хочу сохранить эти два метода, но использую метод с именем "button1Clicked", вызывающий оба, и сделать то же самое для "button2Clicked". Есть идеи? Я буду более чем готов предоставить код, который у меня есть. Спасибо!

Я не смог найти ответ на этот вопрос, но если кто-то знает, действительно ли на сайте есть ответ, можете ли вы предоставить ссылку? Это было бы оценено!

Успокойся, пожалуйста, я еще новичок:)

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

хорошо, вы можете добавить свойство 'tag' к каждой кнопке, а затем в начале вашего первого метода проверить значение тега отправителя, чтобы вы знали, какой из них был нажат.Таким образом, вам не нужно дублировать код.Это то, что вы пытаетесь сделать, или я неправильно понял вашу цель?

0 голосов
/ 13 апреля 2011

Можете ли вы уточнить свой вопрос. Вы спрашиваете, как написать метод, который содержит вызовы других методов? Или вы спрашиваете, как подключить метод, который будет вызываться при нажатии кнопки? Или вы спрашиваете, как заставить обе кнопки вызывать разные методы, какие методы затем вызывают два первых упомянутых метода?

Для одного метода обработки нескольких кнопок:

Подход A:

- (IBAction)onSomeClick:(id)sender {

    // return if sender is not a button
    if (![sender isKindOfClass:[UIButton class]])
        return;

    NSString *title = [(UIButton *)sender currentTitle];
    if(title == @"Choice 1")
        // call choice 1 methods here
    else if(title == @"Choice 2"
        // call choice 2 methods here
}

Подход B:

-(IBAction)onButtonPress:(id)sender{ 
     // if you have the logic for differentiating between 
     // the sender in the showActionSheet method, no need
     // for it here, just send the sender as the param
     [self showActionSheet:sender];         

     // call another method here also if appropriate
     // .. or as needed call it from within the showActionSheet method
}

// note how this does not need the IBAction return. This method doesn't need to be 
// hooked up via Interface Builder
-(void)showActionSheet:(id)sender{
     // here you can do your differentiation logic if you need it
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...