0

在 iOS 13 中,关闭视图控制器时不会调用 viewWillAppear。作为一种解决方法,它提到了覆盖 UIAdaptivePresentationControllerDelegate 委托,但它对我不起作用。我究竟做错了什么?

 func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "MyVC" {
       let destination = segue.destination as! MyViewController
        destination.presentationController?.delegate = self
    } 
  }

接着,

func presentationControllerDidDismiss(_ presentationController: UIPresentationController) {
     resumePipeline() //<--Does not get called
}
4

1 回答 1

4

我究竟做错了什么?

您可能假设在解雇发生时总是调用presentationControllerDidDismiss这是一个错误的假设。当用户在呈现的视图上向下拖动以将其关闭时调用它。

您需要将呈现的视图控制器视为弹出框。它并没有完全取代呈现视图控制器的视图;它只是部分覆盖它。所以没有viewDidAppear调用,因为主视图从未消失。

要么您需要返回强制您呈现的视图控制器,fullScreen要么您需要调整您的架构以使用新样式的呈现视图控制器。

于 2019-08-11T16:41:45.060 回答