Я пытаюсь выдвинуть контроллер представления из блока обратного вызова.Контроллер представления, который я хочу нажать, содержит UIWebView, который жалуется, что я должен вызвать это в главном потоке.Я пытался использовать NSInvocation безрезультатно.Как я могу вызвать presentModalViewController:animated
в главном потоке?
[vc requestUserPermissionWithCallback:^(BOOL inGranted)
{
if (inGranted)
{
if (serviceType == PXServiceTypeTwitter)
{
//[ad.rootViewController presentModalViewController:vc animated: YES]; // crashes
NSInvocation *invocation = [NSInvocation invocationWithTarget:ad.rootViewController selector:@selector(presentModalViewController:animated:) retainArguments:YES, vc, YES];
[invocation invokeOnMainThreadWaitUntilDone:NO]; // same result
}
}
else
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
}];
сообщение об ошибке:
bool _WebTryThreadLock (bool), 0x6b21090: попытался получить веб-блокировку из потокакроме основного потока или веб-потока.Это может быть результатом обращения к UIKit из вторичного потока.Сбой сейчас ...
Я использую категорию NSInvocation + CWVariableArguments .