2016-05-18 3 views
1

UIActionSheet, у нее есть кнопки с заголовком, я получаю заголовок из массива. Я хочу получить заголовок кнопок и отображение в UILabel, что я и сделал, но если я нажму кнопку отмены, отмена кнопки также отображение, я не хочу, чтобы отобразить отменить название кнопки в UILabel ниже кода, который я попробовал,Кнопка UIActionSheet Cancel не работает должным образом

- (IBAction)site_Selection:(id)sender { 

NSArray *array = @[@"one",@"two",@"three",@"Smart Gladiator1"]; 

UIActionSheet *actionSheet = [[UIActionSheet alloc] 
           initWithTitle:nil 
           delegate:self 
           cancelButtonTitle:nil 
           destructiveButtonTitle:nil 
           otherButtonTitles:nil]; 
actionSheet.delegate = self; 
for (NSString *title in array) { 
    [actionSheet addButtonWithTitle:title]; 
} 

actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"]; 


[actionSheet showInView:self.view]; 


    } 

    -(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ 

NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex]; 


self.btn_site_selection.titleLabel.text = [actionSheet buttonTitleAtIndex:buttonIndex]; 

} 

Пожалуйста, помогите мне сделать это,

ответ

1

Вы не должны обрабатывать кнопку отмены Нажмите.

Поскольку все кнопки нажимают на UIActionSheet, обрабатываются actionSheet:clickedButtonAtIndex:, вам нужно будет проверить, указан ли указатель кнопки кнопки отмены. Вы можете сделать это с cancelButtonIndex на UIActionSheet:

- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if (actionSheet.cancelButtonIndex == buttonIndex) { 
     return; 
    } 

} 
+0

Благодарности @rckoenes, он работает нормально – user6183984

0

Вы можете попробовать это

- (IBAction)actionSheetCall:(id)sender { 


    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Confirm call" 
                    message:@"Are you sure to call?" 
                  preferredStyle:UIAlertControllerStyleActionSheet]; // 1 

    UIAlertAction *secondAction = [UIAlertAction actionWithTitle:@"Cancel" 
                  style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) { 
                   NSLog(@"You pressed cancel button "); 
                  }]; // 3 


    for(int i = 0; i < [Arr_phone count]; i++) { 

     UIAlertAction *firstAction = [UIAlertAction actionWithTitle:[activity.Arr_phone objectAtIndex:i] 
                   style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { 
                    NSLog(@"You pressed Logout one"); 
                    //[self setupCall]; 
                    [self incomingCall:[Arr_phone objectAtIndex:i]]; 
                   }]; // 2 
     [alert addAction:firstAction]; // 4 

    } 

    [alert addAction:secondAction]; // 5 

    [self presentViewController:alert animated:YES completion:nil]; // 6 


} 
Смежные вопросы