Search code examples
iosswiftxcodeswift5

Change root view controller using HERO transition


I have this code....

 UIView.transition(with: window!, duration: 0.3, options: **animation**, animations: {
            window!.rootViewController = rootVC
        }, completion: nil

Is it possible put Hero transition replacing "animation" var?


Solution

  • As an example:

       let current = window.rootViewController!
       let transition = HeroTransition()
       // Collapse vertically in dismissal, over 1 second.
       current.view.hero.modifiers = [.scale(x: 1, y: 0.1, z: 1), .duration(1), .fade]
       // Rotate in, over 2 seconds.
       replacement.view.hero.modifiers = [.rotate(z:1.6), .duration(2), .fade]
    
       transition.transition(from: current, to: replacement, in: window) { (finished) in
          window.rootViewController = replacement
                    
       }