Какую функцию вызывают, когда UIViewcontroller снова в фокусе? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть одно приложение просмотра, которое также представляет пользовательское всплывающее окно, которое я сделал с помощью другого viewController. Всплывающему представлению viewController присвоено следующее:

 presentation: Over current context

enter image description here

когда он представлен. Когда я закрываю этот всплывающий viewController, чтобы показать первый viewController, я хотел бы знать, какая функция вызывается, чтобы я мог делать больше вещей внутри этой функции. Я протестировал следующие функции ниже, но ни одна из них не вызывается, когда я закрыл всплывающее окно, чтобы показать первый viewController.

class firstViewController: UIViewController{

 override func viewWillAppear(_ animated: Bool) {
      super.viewWillAppear(animated)

     print("viewWillAppear PdfViewController...")

   }


override func viewDidLoad() {
    super.viewDidLoad()

    print("viewDidLoad PdfViewController ...")


   }

}

1 Ответ

0 голосов
/ 28 августа 2018

Это зависит от стиля overCurrentContext не вызывает viewWillAppear / viewDidAppear, например, fullScreen делает, ищите здесь все возможные стили

https://developer.apple.com/documentation/uikit/uimodalpresentationstyle

если выбранный метод не вызывает метод, реализуйте делегат для этого при отклонении модального

//

protocol DimissManager {
  func vcDismissed()
}
class FirstVc:UIViewController,DimissManager {

 func vcDismissed() {
   print("Dismissed")
 }
 func showSecond() {
    let sec = storyboard
    sec.delegate = self ...... // note this assign may be in prepareForSegue if you use segues  
    self.present(sec.......
 }
}
class SecondVc:UIViewController{
   var delegate:DimissManager?

  @IBAction func dismiss(_ sender:UIButton) {
    delegate?.vcDismissed()
    self.dismiss(animated:true,completion:nil)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...