Как использовать раскручивающиеся сегменты при отображении контроллеров представления поверх контроллера панели вкладок? - PullRequest
0 голосов
/ 25 сентября 2018

У меня проблема с размоткой контроллеров представления поверх контроллера панели вкладок.

Путь:

  • Кнопка из (1)переходит к (2) с помощью show segue.
  • кнопка из (2) переходит к (3) с пользовательским кодом перехода, добавленным ниже.
  • При нажатии на кнопку из (3)) необходимо отменить переход к (1) с обычной анимацией.

Проблема:

При нажатии на кнопку (3), чтобы развернуть.(3) закрывается без анимации, (2) показывается и закрывается с обычной анимацией, а затем показывает (1).

Как мне запретить (2) показывать - и иметь хорошую анимацию из (3) до (1)?

enter image description here

Пользовательский переход:

class SegueFromRight: UIStoryboardSegue {

    override func perform() {
        let src = self.source
        let dst = self.destination

        src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
        dst.view.transform = CGAffineTransform(translationX: src.view.frame.size.width, y: 0)

        UIView.animate(withDuration: 0.25,
                       delay: 0.0,
                       options: .curveEaseInOut,
                       animations: {
                        dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
        },
                       completion: { finished in
                        src.present(dst, animated: false, completion: nil)
        }
        )
    }

}
...