Увольнение UIAlertView программно - PullRequest
0 голосов
/ 12 июля 2011

У меня есть UIAlertView со следующим методом делегата:

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {

Но у меня есть проблема. В этом методе я выполняю некоторую логику и выполняю некоторые строки кода, которые занимают небольшое количество времени. Я хотел бы отклонить alertView, прежде чем я сделаю все это. Я хочу отклонить представление предупреждений в самом верху этого метода. Таким образом, когда пользователь нажимает кнопку в alertView, приложение не кажется замороженным ни на секунду, пока выполняются следующие строки кода.

Ответы [ 3 ]

12 голосов
/ 14 июля 2011

Для отклонения предупреждения программно выполните:
/* Your Processing Code Here */ [theAlertView dismissWithClickedButtonIndex:0 animated:YES];
[TheAlertView dismissWithClickedButtonIndex: 0 animated: YES]; сделает предупреждение уйти

4 голосов
/ 12 июля 2011

Либо используйте вместо этого метод делегата -alertView:didDismissWithButtonIndex: - он вызывается после удаления представления с экрана с предупреждением, что, по крайней мере, скрывает отставание, которое имеет ваше приложение, или, что лучше, использует фоновый поток, например, с -performSelectorInBackground:withObject:, чтобы обработать любую обработку, которую вам нужно сделать.

2 голосов
/ 12 июля 2011

Используйте другой метод делегата для did , вместо будет :

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

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

...