UIActivityViewController

UIActivityViewController

本文介绍了UIActivityViewController共享文件后关闭当前视图控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

UIActivityViewController在共享文件后关闭当前的视图控制器.这仅在iOS 13+中才发生.有永久解决方案吗?在更新到iOS 13之后,其他应用似乎也出现了此问题.

UIActivityViewController dismisses the presenting view controller after sharing files.this is happening in iOS 13+ only. Is there any permanent solution for this?Others apps seem to have this issue too after updating to iOS 13.

   class VC : UIViewController {


   @IBAction func moveFiles(_ sender: UIButton) {

      let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)


    alertController.addAction(UIAlertAction(title: "Move", style: .default, handler: { action in

    let activityController = UIActivityViewController(activityItems: urls, applicationActivities: nil)


   if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad) {
   activityController.popoverPresentationController?.sourceRect = sender.frame
    activityController.popoverPresentationController?.sourceView = sender.superview
    }
   self.present(activityController, animated: true, completion: nil)


    }))




           }


     }

推荐答案

以下是解决您的问题的方法.

Here is the work around for your issue.

let tempController = TransparentViewController()
tempController.modalPresentationStyle = .overFullScreen

activityViewController.completionWithItemsHandler = { [weak tempController] _, _, _, _ in
  if let presentingViewController = tempController?.presentingViewController {
    presentingViewController.dismiss(animated: false, completion: nil)
  } else {
    tempController?.dismiss(animated: false, completion: nil)
  }
}

present(tempController, animated: true) { [weak tempController] in
    tempController?.present(activityViewController, animated: true, completion: nil)
}

这篇关于UIActivityViewController共享文件后关闭当前视图控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 18:01