Кнопка отмены ios UIActionSheet не работает правильно

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

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 кнопки показаны правильно, кнопка «отправить по почте» в порядке, но отмена ловит щелчок только на верхней стороне ... вот снимок, который иллюстрирует ситуацию:

ошибка щелчка!

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

Благодарность:)


person ghiboz    schedule 14.07.2011    source источник


Ответы (3)


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

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

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

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

person PengOne    schedule 14.07.2011
comment
Спасибо! это было именно так! Я использую showFromTabBar вместо showInView, и теперь все в порядке! - person ghiboz; 15.07.2011

Лист действий следует отображать как часть окна приложения, а не текущего представления.

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

// ...

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

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

Удачного кодирования :)

person Ajay Chaudhary    schedule 13.09.2013

использовать

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

вместо

[actionSheet showInView:self.view];
person Amitabha    schedule 22.08.2013