How to Push View Controller from Present View Controller Swift

Do you want to know how to push view controller from present view controller? Find out in this post.

Do you want to Push View Controller from Present View Controller Swift? Having trouble, I see. Don’t worry, we are here to help! In this article we are going to provide you a brief guide provided by certified Swift users to answer your question.

Push and Present View Controller

The new view controller is shown modally, "on top" of the previous view controller, using the present view controller while the new view controller is placed atop the current navigation stack using push view controller. There is a new display style for modal view controllers in iOS 13.

Push View Controller

Push Navigation is the transfer of data from one view controller to another without the need for a transition. However, it is used to store the Storyboard id of the destination view controller. Set the view controller's Storyboard id.

How To Implement Push or Pop In Your Project

There are a few easy steps that must be included in your project.

In your storyboard, choose the first view controller. Next, you need to choose the Identity Inspector from the right side panel. Then Give the reference view controller a Storyboard ID.

View Controller

Push the view controller onto the stack. This object represents the connection of the destination view controller.

Set Bool true to have the view controller animate the transition or false to make the view controller not animate the transition. Then,  Create a @UIAction for your UIButton. In the source view controller, you can use this code.

// MARK:- Push Navigation Button Action Event

@IBAction func btn_push_navigation(_ sender: UIButton) {

if txtEnterText.text == ""






push_flag = false

let secondView = storyboard?.instantiateViewController

(withIdentifier: "SecondViewController") as! SecondViewController

secondView.get_image = imageView.image

secondView.image_name = txtEnterText.text




The source view controller implements the push view controller. It is used to transfer any form of data from one view controller to another.

Push View Controller from Present View Controller

VC2 must be in a UINavigationController before you can expose it and push VC3. On VC3, the back button works as anticipated; on VC2, the back button should be called dismiss. Try putting some of that into code.


@IBAction func presentVC2() {

   let vc2 = VC2()

   vc2.modalPresentationStyle = .fullScreen

   self.present(vc2, animated: true, completion: nil)




@IBAction func presentVC3() {

   let vc3 = VC3()

   let navController = UINavigationController(rootViewController: vc3) //Add navigation controller

   navController.modalPresentationStyle = .fullScreen

   self.present(navController, animated: true, completion: nil)




@IBAction func navigationVC4() {

   let vc4 = VC4()

   self.navigationController?.pushViewController(vc4, animated: true)



Note that, because a view controller is not a presentation, you cannot "push" it as a separate presentation style. When we talk about UINavigationController and "push," we're referring to the stack of view controllers that transitions from right to left when pushed and left to right when popped.

Leave a Reply

Your email address will not be published.