Проблемы с кнопкой 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.
}
Есть ли лучший способ настроить это?
Ответы
Ответ 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];