Уволить контроллер просмотра с пользовательской анимацией?

Я использую эту строку кода, чтобы отклонить мой контроллер представленияself.dismiss(animated: true, completion: nil), но мне не нравится текущая анимация. Вместо этого я хочу скользить слева направо. Ниже моя попытка проверить анимацию, но она не работает.

UIView.animate(withDuration: 1.0, delay: 0.0, options: UIViewAnimationOptions.curveEaseIn, animations: {

        let transition = CATransition()
        transition.duration = 10
        transition.type = kCATransitionPush
        transition.subtype = kCATransitionFromLeft

        self.view.layer.add(transition, forKey: kCATransition)

        self.dismiss(animated: false, completion: nil)
        }, completion: nil)
 Erik06 авг. 2016 г., 01:51
Я считаю, что здесь происходит то, что контроллер представления закрывается в то же время, когда начинается анимация. Вы можете попробовать переместить self.dismiss (...) в блок завершения анимации и посмотреть, работает ли это. Если этого не произойдет, вы можете найти много онлайн-уроков о том, как настраивать переходы. Я никогда не делал этого, поэтому я сам не могу дать вам никаких указаний, но Рэй Вендерлих - всегда хорошее место для углубленных уроков.raywenderlich.com/86521/...

Ответы на вопрос(1)

Решение Вопроса
let transition: CATransition = CATransition()
transition.duration = 0.5
transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
transition.type = CATransitionType.reveal
transition.subtype = CATransitionSubtype.fromRight
self.view.window!.layer.add(transition, forKey: nil)
self.dismiss(animated: false, completion: nil)

Ваш ответ на вопрос