Самый простой способ сделать это - создать свой лист действий без кнопок, включая кнопки отмены или деструктивного действия:
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"Dynamic"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
Затем добавьте загрузку кнопок по мере необходимости:
if(buttonX)
{
[actionSheet addButtonWithTitle:@"Button X"];
}
if(buttonY)
{
[actionSheet addButtonWithTitle:@"Button Y"];
}
if(buttonZ)
{
[actionSheet addButtonWithTitle:@"Button Z"];
}
Затем, наконец, добавьте кнопку отмены в конце и установите индекс кнопки отмены:
[actionSheet addButtonWithTitle:@"Cancel"];
actionSheet.cancelButtonIndex = actionSheet.numberOfButtons - 1;
Конечно, вы можете добавить и кнопку отмены, и / или деструктивную кнопку таким образом.