Обратный вызов iOS UIActionSheet работает в симуляторе, но не на телефоне

У меня есть лист действий, который при успешном нажатии на один из его параметров вызывает clickedButtonAtIndex при запуске в симуляторе, но при тестировании на iPhone (5 с в Xcode 6) он не достигает обратного вызова.

Заголовок...

@protocol SGETriggerToolBarDelegate
-(void)showCustomEditView;
@end

@interface SGETriggerToolBarController : UIViewController <UIActionSheetDelegate>

@property (nonatomic, assign) id <SGETriggerToolBarDelegate> delegate;
@property (nonatomic, strong) UIToolbar *toolbar;

в реализации...

// in xController.m
// ...
- (void)triggerButtonHandler
{
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select an event type"
                                                             delegate:self
                                                    cancelButtonTitle:nil
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];
    for (SGETrigger *trigger in triggers)  {
        [actionSheet addButtonWithTitle:trigger.name];
    }

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

    [actionSheet showFromToolbar:self.toolbar];
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == [actionSheet cancelButtonIndex]) {
        return;
    } else {
        selectedTrigger = triggers[buttonIndex];
        triggerButton.title = [NSString stringWithFormat:@"• %@ •", selectedTrigger.name];
        [delegate showCustomEditView];
    }
}
// ...

1 ответ

Если вы видите "Представление листа действий, обрезанного по его суперпредставлению. Некоторые элементы управления могут не реагировать на прикосновения"

Замена...

[actionSheet showFromToolbar:self.toolbar];

с

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

решил это для меня.

Другие вопросы по тегам