Изменить анимацию экрана при нажатии кнопки назад - PullRequest
0 голосов
/ 15 мая 2018

Когда вы нажимаете «<», чтобы вернуться на предыдущий экран вашего контроллера навигации, экран оживляет, сдвигая вправо. </p>

Я бы хотел изменить поведение спины, чтобы вместо того, чтобы оно скользило вправо, вместо этого оно двигалось влево.

Есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 16 мая 2018

Вам нужна пользовательская кнопка возврата. В вашем контроллере представления назначения создайте пользовательский UIButtonItem, установите его как leftBarButtonItem и выполните анимацию действия кнопки.

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "back", style: .plain, target: self, action: #selector(self.back))
}

@objc func back(){
    //Create and set up the animation
    let transition = CATransition()
    transition.duration = 0.4
    transition.type = kCATransitionMoveIn
    transition.subtype = kCATransitionFromRight//animates from right to left
    self.navigationController?.view.layer.add(transition, forKey: nil)//adds the animation
    self.navigationController?.popViewController(animated: true)
}
...