UIActionSheet не будет действовать, пока кнопки в iOS 4 не будут дважды нажаты - PullRequest
0 голосов
/ 17 января 2012

У меня есть UIActionSheet, который я создаю со следующим кодом.

 UIActionSheet *popupQuery2 = [[UIActionSheet alloc] initWithTitle:@"Choose" 
                                                          delegate:nil 
                                                 cancelButtonTitle:@"Cancel" 
                                            destructiveButtonTitle:@"Accept Friendship" 
                                                 otherButtonTitles:@"Do not accept friendship",@"Check profile", nil];
popupQuery2.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery2 setDelegate:self];
popupQuery2.tag=3;
[popupQuery2 showInView:self.view.superview];
[popupQuery2 release];

Код работает на iOS 5.0 нормально. Вопрос в 4.0. Я должен дважды нажать на кнопки UIActionSheet, чтобы закрыть его! Кто-нибудь сталкивался с этой проблемой раньше?

Ответы [ 2 ]

1 голос
/ 18 января 2012

Спасибо всем за помощь, но проблема заключалась в том, что ibaction дважды вызывался в ios4!Поэтому я искал в stackoverflow, и я нашел это

if (sender.state! = UIGestureRecognizerStateRecognized) return;

Я поместил вышеуказанный код в мою ibaction, и это сработало !!!

Еще раз спасибо, я очень ценю вашу помощь!Надеюсь, это поможет кому-то еще, потому что я смотрю на это часами.

0 голосов
/ 04 июня 2015

У меня похожая проблема в iOS 8, используется UIAlertController со стилем UIAlertControllerStyleActionSheet.Хотя собственный ответ stefanosn решает для него, это не так для меня.

Моя проблема в том, что первое нажатие на листе действий (на любой кнопке) игнорируется.

Получилосьэто связано с тем, что клавиатура моего текстового поля мешает прикосновениям.

Исправление - сначала убрать клавиатуру, а затем представить лист действий.

[textfield resignFirstResponder];
[self presentViewController:alert animated:YES completion:nil];
...