iosswiftuinavigationcontrollerswrevealviewcontroller

presenting viewController with transition


is it possible to define a type of transition when I instantiate and present a viewcontroller?

This code generates a default fade type transition, but I need it to appear from left to right, is it possible?

Thank you!

@IBAction func botonVolverFamilias(_ sender: Any) {
    let sw  = revealViewController()
    self.view.window?.rootViewController = sw
    let viewControllerModelos = storyboard!.instantiateViewController(withIdentifier: "vc_catalogo_familias") as! VC_catalogo
    let navigationController = UINavigationController(rootViewController: viewControllerModelos)
    navigationController.navigationBar.isHidden=false
    navigationController.setNavigationBarHidden(true, animated: false)
    sw!.setFront(navigationController, animated: true)
}

Solution

  • You may go with Following,

     let sw  = revealViewController()
            self.view.window?.rootViewController = sw
            let viewControllerModelos = storyboard!.instantiateViewController(withIdentifier: "vc_catalogo_familias") as! VC_catalogo
            let navigationController = UINavigationController(rootViewController: viewControllerModelos)
            navigationController.navigationBar.isHidden=false
            navigationController.setNavigationBarHidden(true, animated: false)
         let trans = CATransition()
                trans.duration = 0.5
                trans.type = kCATransitionPush
                trans.subtype = kCATransitionFromLeft
                trans.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
                sw.view.window!.layer.add(trans, forKey: kCATransition)
            sw!.setFront(navigationController, animated: true)