iOS警报控制器Whitescreen

时间:2015-12-07 23:18:27

标签: ios objective-c iphone webview uialertcontroller

我正在尝试调出一个UIAlert控制器,您可以在其中选择如何在我的应用程序中导出PDF文档。

该应用程序包含ViewController上的WebView,一个单一的视图应用程序。 问题是,无论何时出现另一个控制器,它都会覆盖webview上的空白屏幕,并且永远不会恢复WebView。这种情况发生在iOS上的每个版本中。

    UIAlertController *alertController = [UIAlertController
                                          alertControllerWithTitle:@"Share file" message:@"" preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *cancelAction = [UIAlertAction
                                   actionWithTitle:@"Cancel"
                                   style:UIAlertActionStyleCancel
                                   handler:^(UIAlertAction *action)
                                   {}];

    UIAlertAction *eMail = [UIAlertAction
                               actionWithTitle:@"Email"
                               style:UIAlertActionStyleDefault
                               handler:^(UIAlertAction *action)
                               {
                                   MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
                                   [picker setSubject:@""];
                                   [picker addAttachmentData:fileData mimeType:@"application/pdf" fileName:fileName];
                                   [picker setToRecipients:[NSArray array]];
                                   [picker setMessageBody:@"" isHTML:NO];
                                   [picker setMailComposeDelegate:self];
                                   [self presentViewController:picker animated:YES completion:nil];
                               }];

    UIAlertAction *docController = [UIAlertAction
                               actionWithTitle:@"Export"
                               style:UIAlertActionStyleDefault
                               handler:^(UIAlertAction *action){
                                   documentController.UTI = @"com.adobe.pdf";
                                   [documentController presentOpenInMenuFromRect:CGRectZero                                    inView:self.view animated:YES]; }];
    [alertController addAction:eMail];
    [alertController addAction:docController];
    [alertController addAction:cancelAction];
    [alertController setModalPresentationStyle:UIModalPresentationCurrentContext];
    [self presentViewController:alertController animated:YES completion:nil];

我需要在完成共享文件的操作后,webview将显示在其最后一个状态

1 个答案:

答案 0 :(得分:0)

正如@johnnieb所说,我把演示文稿包装在一个调度块中,就像一个魅力!

dispatch_async(dispatch_get_main_queue(),^{
  [self presentViewController:alertController animated:YES completion:^{}];
});

谢谢!

这是有效的,因为我们需要等待主队列完全关闭以前的视图控制器。