In this tutorial, you will learn how to present ViewController in Swift. By the end of this tutorial, you will have a working Swift code example that you can use in your mobile application.
Presenting a ViewController in Swift involves displaying a new screen (ViewController) over the current one. This can be done programmatically or using segues in a storyboard. The process involves creating an instance of the ViewController you want to present, configuring it as needed, and then using the present(_:animated:completion:) method to display it.
To learn how to present view controller from an AppDelegate swift file, please read the following tutorial: Navigate From AppDelegate.swift to a Different ViewController.
Step 1: Creating the ViewController to Present
First, make sure you have a ViewController that you want to present. If you’re using a storyboard, you can instantiate it using its storyboard identifier. If you’re doing it programmatically, you can simply create a new instance of the ViewController class.
Using Storyboard
If your ViewController is defined in a storyboard, you can instantiate it using its identifier:
let storyboard = UIStoryboard(name: "Main", bundle: nil) let viewControllerToPresent = storyboard.instantiateViewController(withIdentifier: "YourViewControllerIdentifier") as! YourViewControllerClass
Programmatically
If you’re creating the ViewController programmatically, you can instantiate it directly:
let viewControllerToPresent = YourViewControllerClass()
Step 2: Configuring the ViewController
Before presenting the ViewController, you might want to configure it. This could involve setting properties, passing data, or setting up the user interface.
viewControllerToPresent.someProperty = someValue
Step 3: Presenting the ViewController
To present the ViewController, use the present(_:animated:completion:) method on the current ViewController. The animated parameter determines whether the presentation should be animated. The completion parameter is a closure that gets called after the presentation is complete.
self.present(viewControllerToPresent, animated: true, completion: nil)
Step 4: Dismissing the ViewController
To dismiss the presented ViewController, you can call the dismiss(animated:completion:) method on the presented ViewController itself.
self.dismiss(animated: true, completion: nil)
Complete Code Example
Below is the complete code example that presents ViewController in Swift. This example demonstrates how to programmatically create and present a ViewController. It involves creating two ViewControllers (FirstViewController and SecondViewController), programmatically adding a button to the first ViewController, and using that button to present the second ViewController.
import UIKit
// MARK: First View
class FirstViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .cyan
let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 200, height: 50)
button.center = view.center
button.setTitle("Go to Second VC", for: .normal)
button.addTarget(self, action: #selector(presentSecondViewController), for: .touchUpInside)
view.addSubview(button)
}
@objc func presentSecondViewController() {
let secondViewController = SecondViewController()
secondViewController.modalPresentationStyle = .fullScreen
self.present(secondViewController, animated: true, completion: nil)
}
}
// MARK: Second View
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBlue
let label = UILabel(frame: CGRect(x: 100, y: 200, width: 200, height: 21))
label.center = CGPoint(x: 160, y: 285)
label.textAlignment = .center
label.text = "I'm the Second View Controller"
self.view.addSubview(label)
}
func dismissViewController() {
self.dismiss(animated: true, completion: nil)
}
}

Conclusion
I hope this tutorial was helpful to you.
To learn more about Swift and to find other code examples, check the following page: Swift Code Examples.
Keep coding!