UIAlertController showing with delay
I was having the same issue with a UIAlertController presented by selecting a row from a UITableView. The first time everything worked fine, and then when the user triggered the alert again there was a few seconds delay before the alert was actually presented.
As a workaround I used GCD:
dispatch_async(dispatch_get_main_queue(), ^{ [self presentViewController:AlertView animated:YES completion:nil]; });
It is probably a bug since -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
is already executed on the main thread.
I submitted a bug report to Apple: rdar://19285091
DispatchQueue.main.async { self.present(alertView, animated: true, completion:nil) }
Swift 3.0 version. Alternatively, setting animated: false also solved my problem.