У меня есть лист действий, который вызывает у меня горе на iphone в альбомной ориентации. Все отображается нормально, но в альбомной ориентации первая настоящая кнопка имеет тот же индекс, что и кнопка отмены, поэтому логика не работает.
Я пробовал создать actionSheet с помощью initWithTitle: delegate: cancelButtonTitle: destructiveButtonTitle: otherButtonTitles: но это было точно так же, мой текущий код выглядит следующим образом;
UIActionSheet* actionMenu = [[UIActionSheet alloc] init];
actionMenu.delegate = self;
actionMenu.title = folderentry.Name;
actionMenu.cancelButtonIndex = 0;
[actionMenu addButtonWithTitle:NSLocalizedString(@"str.menu.cancel",nil)];
[self addActiveButtons:actionMenu forEntry:folderentry];
[actionMenu showInView:[self.navigationController view]];
[actionMenu release];
Метод addActiveButtons в основном настраивает, какие кнопки нужно добавлять, используя подобный код;
[menu addButtonWithTitle:NSLocalizedString(@"str.menu.sendbyemail",nil)];
Иногда бывает 6 кнопок, поэтому в альбомном режиме actionSheet отображается следующим образом;
Мой представитель отвечает так;
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"Cancel Button Index is : %d",actionSheet.cancelButtonIndex);
NSLog(@"Button clicked was for index : %d",buttonIndex);
NSString *command = [actionSheet buttonTitleAtIndex:buttonIndex];
DLog(@"COMMAND IS: %@ for index: %d",command,buttonIndex);
if ([command isEqualToString:NSLocalizedString(@"str.menu.sendbyemail",nil)]) {
// Do stuff here
}
if ( ... similar blocks ... ) { }
}
В показанном примере я обнаружил, что cancelButtonIndex, как и ожидалось, равен 0, но так же индекс кнопки для первой другой кнопки! Это означает, что если, например, я нажимаю вторую кнопку (Сохранить в фотографиях), мои результаты отладки будут выглядеть следующим образом;
Индекс кнопки отмены: 0
Нажата кнопка для индекса: 1
КОМАНДА ЕСТЬ: Отправить по электронной почте для индексации: 1
Я пробовала разные перестановки и теперь рву волосы, гадая, чего мне не хватает. У меня был хороший поиск, но другие проблемы, с которыми люди, похоже, сталкиваются, - это проблемы с отображением, а не с функциональностью.
Может ли кто-нибудь увидеть, где я ошибся?
PS. Я знаю, что это не лучший интерфейс, но я полагаю, что большинство пользователей на самом деле большую часть времени будут в портретной ориентации или будут использовать версию приложения для iPad, поэтому я готов принять поведение таблицы действий по умолчанию для альбомной ориентации, предполагая, что я могу заставить его работать!