2017-01-11 2 views
-1

Моя цель - выполнить флип-анимацию из view1 в view2 и наоборот. Я только хочу, чтобы перевернуть взгляды не весь ViewControllerCustom flip animation segue - Swift 3

Настройки следующим образом: у меня есть контроллер представления (fromViewController) в моей раскадровке, внедренной в navigationController. Я нарисовал segue на втором контроллере представления (toViewController) и сделал его обычным segue. Теперь я хочу добавить флип-анимацию, чтобы перевернуть представления контроллеров вида слева направо и справа налево. Анимация в прямом направлении уже работает (от fromViewController to toViewController), но обратная анимация не работает. Я проверил множество подобных вопросов здесь, но я не мог найти ответ, соответствующий моим потребностям.

Я надеюсь, что кто-то может мне помочь.

Класс для пользовательского segue - FlipSegue. вот мой код:

import UIKit 

extension UIViewController{ 
    var isVisible: Bool{ 
     return self.isViewLoaded && self.view.window != nil 
    } 
} 

class FlipSegue: UIStoryboardSegue { 

    override func perform() { 
     let fromViewController = self.source 
     let toViewController = self.destination 

     if fromViewController.isVisible{ 
      UIView.transition(from: fromViewController.view, to: toViewController.view, duration: 1, options: .transitionFlipFromLeft, completion: nil) 
     } 
     else{ 
      UIView.transition(from: toViewController.view, to: fromViewController.view, duration: 1, options: .transitionFlipFromRight, completion: nil) 
     } 
    } 
} 

FYI: toViewController не является частью NavigationController.

РЕДАКТИРОВАТЬ: Я выполняю сег, нажимая на UIBarButton с левой стороны навигационного контроллера. Кнопка вызывает функцию выполнения в классе FlipSegue. Может быть, проблема в том, что toViewController не является частью стека навигации? Поэтому я добавил его в стек навигации, а затем получил кнопку «Назад», и я смог вернуться к inViewController со стандартной анимацией, но этого я не хотел.

+0

«... но обратная анимация не работает [работает?]» Это действительно неинформативно. Что происходит? Является ли ваша статья оговоркой? Меняются ли взгляды, но с неправильной анимацией? –

+0

да, оговорка else стреляет, я проверил, что – user1895268

+0

Как насчет другой информации, которую я просил? Давай, мужик, не заставляй нас играть 20 вопросов! –

ответ

0

Я не пробовал это, но вы должны, вероятно, использовать from:fromViewcontroller.view в обоих случаях, так как в обратном сегменте, начиная с еще начального VC.

+0

Извините, но это не работает. Такое же поведение, как и раньше – user1895268