添加文本字段时,UIAlertController需要15秒才能显示

时间:2014-11-22 03:29:46

标签: ios xcode uialertcontroller

我有一个新奇怪的错误。该项目非常简单,只是一个带有根视图控制器的UINavigationController。

我的问题是,当用户点击工具栏项时,它会调用以下代码:

- (IBAction)configurePressed:(id)sender
{
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Capture Area"
                                                                             message:@"Enter the name of the area that is being captured."
                                                                      preferredStyle:UIAlertControllerStyleAlert];

    [alertController addTextFieldWithConfigurationHandler:nil];

    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
                                                           style:UIAlertActionStyleCancel
                                                         handler:nil];

    UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"Set"
                                                            style:UIAlertActionStyleDefault
                                                          handler:^(UIAlertAction *action)
                                                          {
                                                              UITextField *captureArea = alertController.textFields.firstObject;
                                                              _captureArea = captureArea.text;
                                                          }];

    [alertController addAction:cancelAction];
    [alertController addAction:defaultAction];

    [self presentViewController:alertController animated:true completion:nil];
}

超级简单吧?好吧,第一次显示需要15秒,然后在随后的时间显示。甚至更奇怪的是,如果我删除该行:

[alertController addTextFieldWithConfigurationHandler:nil];

所以没有文字输入框,它会立即显示。我还确认它正在主线程上执行。

更新#1:新观察,当它等待显示时,主线程似乎被阻止。 AlertController正在MKMapView上显示。

更新#2:模拟器上不会发生这种情况。

其他人有这种经历吗?

0 个答案:

没有答案