Расслабьтесь Segue не оживляет в Custon Swegue, так как iOS 13 - PullRequest
0 голосов
/ 09 июля 2019

У меня есть приложение, которое использует пользовательские анимации segue (на основе https://www.appcoda.com/custom-segue-animations/).. Оно работало годами, но после iOS 13 сегменты раскручивания не анимируются (тогда появляется черный экран, а не скользит в).

Когда я устанавливаю для контроллеров представления новый modalPresentationStyle на .fullScreen. Анимация не работает, но работает по умолчанию.

Вот мой код:

class TransitionManagerHorizonal: UIStoryboardSegue {

  override func perform() {
    // Assign the source and destination views to local variables.
    var unwind = false

    let firstVCView = source.view as UIView?
    let secondVCView = destination.view as UIView?

    let id = horizontalUnwindSegues.filter {$0 == identifier}
    if id.count > 0 {
        unwind = true
    }

    // Get the screen width and height.
    let screenWidth = UIScreen.main.bounds.size.width
    let offScreenRight = CGAffineTransform(translationX: screenWidth, y: 0)
    let offScreenLeft = CGAffineTransform(translationX: -screenWidth, y: 0)

    // Specify the initial position of the destination view.
    secondVCView?.transform = offScreenLeft

    // Access the app's key window and insert the destination view above the current (source) one.
    let window = UIApplication.shared.keyWindow
    window?.insertSubview(secondVCView!, aboveSubview: firstVCView!)

    // Animate the transition.
    UIView.animate(withDuration: 0.4, animations: { () -> Void in

        firstVCView?.transform = offScreenRight
        secondVCView?.transform = CGAffineTransform.identity

        }, completion: { (Finished) -> Void in

            if unwind {
                self.destination.dismiss(animated: false, completion: nil)     
            } else {
                self.source.present(self.destination ,
                    animated: false,
                    completion: nil)
            }
    }) 

  }

}

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

...