Я отправляю уведомление из UIPopoverController обратно в свое основное представление, которое затем немедленно вызывает уволитьPopoverAnimated, а затем выполняет довольно тяжелую работу по загрузке веб-представлений. Весь этот код работает; проблема в том, что на некоторых старых iPad всплывающее окно фактически не закрывается до тех пор, пока не будет завершена интенсивная работа процессора (проверено в отладчике). Это приводит к тому, что всплывающее окно зависает на секунду после закрытия. Как я могу обеспечить немедленное отклонение всплывающего окна вместо того, чтобы сначала выполнять интенсивный код?
Метод, который отвечает на уведомление, выглядит следующим образом:
- (void)changeDefaultView:(NSNotification *)note
{
[self closePopover];
int i;
for(i = 0; i < [arrWebViewControllers count]; i++)
{
WebViewController *wvc = [arrWebViewControllers objectAtIndex:i];
[[wvc webview] stopLoading];
[[wvc webview] removeFromSuperview];
[[wvc imageview] removeFromSuperview];
wvc = nil;
}
[arrWebViewControllers removeAllObjects];
[arrLinks removeAllObjects];
[arrImageViews removeAllObjects];
[self loadCategory:[note object]];
[self addWidgetsToView];
}
и closePopover:
- (void)closePopover
{
if(popover != nil)
{
[popover dismissPopoverAnimated:YES];
popover = nil;
}
}