Кнопка отмены UIActionSheet ios работает неправильно - PullRequest
13 голосов
/ 15 июля 2011

У меня есть эта проблема: вот мой код:

UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Share the race" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Send with mail" otherButtonTitles:nil];
    popupQuery.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
    [popupQuery showInView:self.view];
    [popupQuery release];

и все вроде нормально, 2 кнопки показаны справа, кнопка "отправить с почтой" в порядке, но отмена ловит щелчок только на верхней стороне ... Вот снимок, который иллюстрирует ситуацию:

error click!

как я могу решить это?

спасибо:)

Ответы [ 3 ]

37 голосов
/ 15 июля 2011

Я предполагаю, что нижняя часть UIActionSheet выходит за границы представления и поэтому не реагирует на прикосновения.

Чтобы проверить эту теорию, добавьте еще одну кнопку и посмотрите, все ливерхние кнопки работают нормально, но нижняя кнопка по-прежнему демонстрирует такое поведение.

Чтобы устранить эту проблему, убедитесь, что вид продолжается до нижней части экрана.Если у вас есть tabBar в вашем приложении, это будет моим подозрением на проблему.Вы можете использовать showFromTabBar:, если хотите, чтобы лист находился над панелью вкладок, или showFromToolbar:, чтобы показать его из панели инструментов.

Если у вас нет нижней панели, тогда я ошибаюсь и не имеюидея.

7 голосов
/ 14 сентября 2013

Вы должны показать лист действий как подпредставление окна приложения, а не текущего представления.

UIActionSheet *actionSheet = [[UIActionSheet alloc] init...];

// ...

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

Может быть, это поможет другим.

Happy Coding:)

2 голосов
/ 22 августа 2013

использование

[actionSheet showFromTabBar:[[self tabBarController] tabBar]];

вместо

[actionSheet showInView:self.view];
...