A View Controller is a core component in iOS that manages a screen (view) and handles its behavior, logic, and user interactions.
The Single View Template in Xcode is the simplest app template, providing one main screen controlled by a single view controller.
A class (usually UIViewController) that:
Default template when creating a new project
Contains:
ViewController.swift)| Method | Purpose |
|---|---|
viewDidLoad() |
Called when view loads into memory |
viewWillAppear() |
Before view appears |
viewDidAppear() |
After view appears |
viewWillDisappear() |
Before view disappears |
When you create a project, you get:
AppDelegate.swift → App lifecycleSceneDelegate.swift → Scene managementViewController.swift → Main screen logicMain.storyboard → UI designDraw:
App → ViewController → View → UI Elements (Label, Button)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Code here
}
}
👉 viewDidLoad() is where initial setup is done
Open Main.storyboard
Drag:
@IBOutlet weak var label: UILabel!
@IBAction func buttonTapped(_ sender: UIButton) {
label.text = "Hello iOS!"
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .lightGray
}
override func viewDidLoad() {
super.viewDidLoad()
print("View Loaded")
}
viewDidLoad()UI:
Code:
@IBOutlet weak var nameField: UITextField!
@IBOutlet weak var messageLabel: UILabel!
@IBAction func showGreeting(_ sender: UIButton) {
messageLabel.text = "Hello \(nameField.text ?? "")"
}
viewDidLoad()?View Controller manages one screen
Single View Template = one screen app
Main file: ViewController.swift
UI designed in Storyboard
Use:
Important method:
viewDidLoad() → initial setupOpen this section to load past papers