Я представляю UIActivityViewController для совместного использования видео .mp4 с URL-адреса:
let viewController: UIViewController = ... // the presenting view controller
let url: URL = ... // local file
let activityController = UIActivityViewController(activityItems: [url], applicationActivities: nil)
viewController.present(activityController, animated: false, completion: nil)
Если выбран параметр «Сохранить видео», видео сохраняется, но представление UIViewController
исчезает (и я вижу, что .viewWillDisappear()
вызывается для него.)
Как сделать так, чтобы представление UIViewController
не исчезало?
Обратите внимание, что все остальные параметры общего доступа, которые япытался не иметь этой проблемы (сообщения, airdrop, instagram).
Я пытался установить sourceView
и sourceRect
, но, похоже, это не помогает.
activityController.popoverPresentationController?.sourceView = viewController.view!
activityController.popoverPresentationController?.sourceRect = viewController.view!.frame
Я искал ошибки, но не нашел:
activityController.completionWithItemsHandler = { (a: UIActivity.ActivityType?, b: Bool, c: [Any]?, d: Error?) in
if let error = d {
print(error)
}
}
Кроме того, все мои UIViewController
переопределения жизненного цикла называют их супер, то есть:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
}
ЭтоВот как это выглядит:
Это сводит на нет весь мой взгляд!
Для чего стоит, viewController
настраивается путем вызова segue, который настраивается в раскадровке:
class LaunchController : UIViewController {
var performedSegue = false
override func viewDidLayoutSubviews() {
if !performedSegue {
self.performSegue(withIdentifier: "main", sender: self)
performedSegue = true
}
}
}