actionSheet clickedButtonAtIndex не работает в цели c? - PullRequest
1 голос
/ 23 января 2012

Я пытаюсь нажать кнопку, выбрать на листе действий и затем установить выбранный индекс в текст метки кнопки. Моя кнопка ниже. Но он не показывает выбранный индекс в тексте кнопки. Как я могу решить это?

- (IBAction)cinsiyetBtnClick:(id)sender {
    popupQuery1 = [[UIActionSheet alloc] initWithTitle:@"Cinsiyetiniz" 
                                              delegate:self 
                                     cancelButtonTitle:NO 
                                destructiveButtonTitle:NO 
                                     otherButtonTitles:@"Bay", @"Bayan",nil];
    popupQuery1.tag = 1;
    //    popupQuery1.actionSheetStyle = UIActionSheetStyleDefault;
    [popupQuery1 showInView:[UIApplication sharedApplication].keyWindow];
    [popupQuery1 release];
}

- (IBAction)medeniDurumBtnClick:(id)sender {
    popupQuery1 = [[UIActionSheet alloc] initWithTitle:@"Medeni Durumunuz" 
                                              delegate:self 
                                     cancelButtonTitle:NO 
                                destructiveButtonTitle:NO 
                                     otherButtonTitles:@"Evli", @"Bekar",@"Dul",@"Boşanmış",nil];
    popupQuery1.tag = 2;
    //    popupQuery1.actionSheetStyle = UIActionSheetStyleDefault;
    [popupQuery1 showInView:[UIApplication sharedApplication].keyWindow];
    [popupQuery1 release];
}

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if(actionSheet.tag==1){
        if (buttonIndex == 0) {
            self.cinsiyetBtn.titleLabel.text = @"Bay";
        } else if (buttonIndex == 1) {
            self.cinsiyetBtn.titleLabel.text = @"Bayan";
        } 
    }
    else if (actionSheet.tag == 2){
        if (buttonIndex == 0) {
            self.medeniDurumBtn.titleLabel.text = @"Evli";
        } else if (buttonIndex == 1) {
            self.medeniDurumBtn.titleLabel.text = @"Bekar";
        } else if (buttonIndex == 2) {
            self.medeniDurumBtn.titleLabel.text = @"Dul";
        } else if (buttonIndex == 3) {
            self.medeniDurumBtn.titleLabel.text = @"Boşanmış";
        } 
    }
}

1 Ответ

1 голос
/ 23 января 2012

Есть несколько состояний, в которых кнопка может быть: UIControlStateNormal, UIControlStateHighlighted, UIControlStateSelected и UIControlStateDisabled.

В большинстве случаев, когда вы хотите обновить заголовок кнопки, вы должны установить новыйtitle для обычного состояния:

[button setTitle:@"New Title" forState:UIControlStateNormal];

Иногда вам нужно будет установить заголовки для всех состояний.

Так что теперь вам нужно просто заменить все ваши self.cinsiyetBtn.titleLabel.text = @"Bay"; на что-то вроде этого:

[self.cinsiyetBtn setTitle:@"Bay" forState:UIControlStateNormal];
...