Подтвердить что ты не робот

Проблемы с кнопкой Cancel и UIActionSheet

Как определить, была ли нажата кнопка отмены на странице UIActionSheet?

My UIActionSheet настроен следующим образом:

-(IBAction)fileButtonPressed
{
    UIActionSheet *mymenu = [[UIActionSheet alloc] 
                             initWithTitle:@"Select Folder" 
                             delegate:self 
                             cancelButtonTitle:@"Cancel" 
                             destructiveButtonTitle:nil 
                             otherButtonTitles:nil];

    for (i=0; i<3; i++) 
    { 
        [mymenu addButtonWithTitle:@"Button Name"]; 
    }

    [mymenu showInView:self.view];

}

У меня есть проблема в том, что я не могу различать кнопку отмены и первую выбранную кнопку.

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{  
    NSString *option = [actionSheet buttonTitleAtIndex:buttonIndex];

    //buttonIndex == 0 if the cancel button is pressed or 
    //if the first item is pressed.
}

Есть ли лучший способ настроить это?

4b9b3361

Ответ 1

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

Другим легким признаком является добавление кнопки отмены в конце, а не в начале.

-(IBAction)fileButtonPressed
{
    UIActionSheet *mymenu = [[UIActionSheet alloc] 
                             initWithTitle:@"Select Folder" 
                             delegate:self 
                             cancelButtonTitle:nil 
                             destructiveButtonTitle:nil 
                             otherButtonTitles:nil];
    for (int nb=0; nb<3; nb++) 
    { 
        [mymenu addButtonWithTitle:@"Button Name"]; 
    }

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

    [mymenu showInView:self.view];
}

кредит для этой fooobar.com/questions/316091/... записи для ответа.

Ответ 2

if (buttonIndex == actionSheet.cancelButtonIndex)
{
    // Handle cancel action
}

UIActionSheet также имеет свойства, такие как destructiveButtonIndex и firstOtherButtonIndex для сравнения.

Ответ 3

добавить это

[mymenu showInView: self.parentViewController.tabBarController.view];