Swift Невозможно представить контроллер представления сверху вниз

В моем приложении я должен представить экран сверху вниз, и я попытался использовать код ниже, что дает тот же нормальный стиль представления.

let screen = self.storyboard?.instantiateViewController(withIdentifier: "Screen1p5") as? Screen1p5 let transition = CATransition() transition.duration = 0.5 transition.type = kCATransitionPush transition.subtype = kCATransitionFromTop view.window!.layer.add(transition, forKey: kCATransition) self.present(screen!, animated: true, completion: nil) 

Для этого вам нужно установить subtype CATransition в kCATransitionFromBottom и установить анимацию анимации анимации в false с помощью present(_:animated:completion:) .

 let screen = self.storyboard?.instantiateViewController(withIdentifier: "Screen1p5") as? Screen1p5 let transition = CATransition() transition.duration = 0.5 transition.type = kCATransitionPush transition.subtype = kCATransitionFromBottom view.window!.layer.add(transition, forKey: kCATransition) self.present(screen!, animated: false, completion: nil) 

CATransition subtype CATransition для kCATransitionFromTop .

 let transition = CATransition() transition.duration = 0.5 transition.type = kCATransitionPush transition.subtype = kCATransitionFromTop view.window!.layer.add(transition, forKey: kCATransition) self.dismiss(animated: false) 

Просто изменил его. transition.subtype на kCATransitionFromBottom

transition.subtype = kCATransitionFromBottom

За отмену контроллера.

 let transition = CATransition() transition.duration = 0.5 transition.type = kCATransitionPush transition.subtype = kCATransitionFromTop view.window!.layer.add(transition, forKey: kCATransition) self.dismiss(animated: true, completion: nil) 

Пожалуйста, найдите нижеследующее представление GIF.

GIF

Если вы используете .XIB, пожалуйста, найдите приведенный ниже код.

Для этого контроллер.

 let newController = NewViewController(nibName: "NewView", bundle: nil) let transition = CATransition() transition.duration = 0.5 transition.type = kCATransitionPush transition.subtype = kCATransitionFromBottom view.window!.layer.add(transition, forKey: kCATransition) self.present(newController, animated: true, completion: nil) 

За отмену контроллера. Это тот же код, что и выше.

 let transition = CATransition() transition.duration = 0.5 transition.type = kCATransitionPush transition.subtype = kCATransitionFromTop view.window!.layer.add(transition, forKey: kCATransition) self.dismiss(animated: true, completion: nil)