En aquest tema, aprendrem a utilitzar Storyboards i Interface Builder per crear interfícies d'usuari en aplicacions iOS. Aquestes eines són fonamentals per al desenvolupament d'aplicacions iOS, ja que permeten dissenyar visualment les pantalles de l'aplicació i definir les transicions entre elles.
Objectius d'Aprenentatge
- Entendre què són els Storyboards i l'Interface Builder.
- Aprendre a crear i configurar vistes utilitzant Storyboards.
- Aprendre a connectar elements de la interfície amb el codi Swift.
- Entendre com funcionen les segues per navegar entre vistes.
Què són els Storyboards i l'Interface Builder?
Storyboards
Un Storyboard és un fitxer que conté una representació visual de les pantalles de l'aplicació i les transicions entre elles. Permet dissenyar la interfície d'usuari de manera visual i veure com les diferents pantalles es connecten entre elles.
Interface Builder
L'Interface Builder és una eina dins de Xcode que permet crear i dissenyar visualment les interfícies d'usuari. Amb l'Interface Builder, pots afegir elements d'interfície com botons, etiquetes, taules, etc., i configurar les seves propietats.
Creació d'un Storyboard
Pas 1: Crear un nou projecte
- Obre Xcode i crea un nou projecte seleccionant "File" > "New" > "Project...".
- Selecciona "App" i fes clic a "Next".
- Omple els detalls del projecte (nom, organització, etc.) i assegura't que l'opció "Storyboard" estigui seleccionada com a interfície d'usuari.
- Fes clic a "Next" i després a "Create".
Pas 2: Afegir una vista al Storyboard
- Obre el fitxer
Main.storyboardque es troba al navegador de projectes. - Arrossega un
View Controllerdes de la biblioteca d'objectes fins al Storyboard. - Selecciona el
View Controlleri, a l'inspector d'atributs, estableix-lo com a "Initial View Controller" marcant la casella "Is Initial View Controller".
Pas 3: Afegir elements d'interfície
- Arrossega elements d'interfície (com botons, etiquetes, etc.) des de la biblioteca d'objectes fins al
View Controller. - Configura les propietats dels elements d'interfície utilitzant l'inspector d'atributs.
Connectar Elements de la Interfície amb el Codi
Pas 1: Crear una classe de vista
- Crea un nou fitxer Swift seleccionant "File" > "New" > "File...".
- Selecciona "Cocoa Touch Class" i fes clic a "Next".
- Omple els detalls de la classe (nom, subclass de
UIViewController) i fes clic a "Next" i després a "Create".
Pas 2: Connectar la classe de vista amb el View Controller
- Selecciona el
View Controlleral Storyboard. - A l'inspector d'identitat, estableix la classe personalitzada com la classe que acabes de crear.
Pas 3: Crear outlets i accions
- Obre el fitxer
Main.storyboardi la classe de vista en mode Assistant Editor (Editor Assistent). - Control + arrossega des dels elements d'interfície fins a la classe de vista per crear outlets i accions.
import UIKit
class MyViewController: UIViewController {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Configuració inicial
}
@IBAction func buttonTapped(_ sender: UIButton) {
myLabel.text = "Botó premut!"
}
}Navegació entre Vistes amb Segues
Pas 1: Crear una segue
- Arrossega un altre
View Controllerdes de la biblioteca d'objectes fins al Storyboard. - Control + arrossega des d'un botó del primer
View Controllerfins al segonView Controllerper crear una segue. - Selecciona la segue i, a l'inspector d'atributs, dóna-li un identificador únic.
Pas 2: Preparar-se per a la segue
- Implementa el mètode
prepare(for:sender:)a la classe de vista per preparar-se per a la segue.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
if let destinationVC = segue.destination as? DetailViewController {
destinationVC.data = "Alguna dada"
}
}
}Exercicis Pràctics
Exercici 1: Crear una Interfície Simple
- Crea un nou projecte en Xcode.
- Afegeix un
View Controlleral Storyboard. - Arrossega una etiqueta (
UILabel) i un botó (UIButton) alView Controller. - Crea una classe de vista i connecta els elements d'interfície com outlets i accions.
- Quan es premi el botó, canvia el text de l'etiqueta.
Exercici 2: Navegació entre Vistes
- Afegeix un segon
View Controlleral Storyboard. - Crea una segue des d'un botó del primer
View Controllerfins al segonView Controller. - Implementa el mètode
prepare(for:sender:)per passar dades del primer al segonView Controller.
Solucions
Solució a l'Exercici 1
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func buttonTapped(_ sender: UIButton) {
myLabel.text = "Botó premut!"
}
}Solució a l'Exercici 2
import UIKit
class FirstViewController: UIViewController {
@IBOutlet weak var myButton: UIButton!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showSecondVC" {
if let destinationVC = segue.destination as? SecondViewController {
destinationVC.data = "Hola des del primer VC"
}
}
}
}
class SecondViewController: UIViewController {
var data: String?
override func viewDidLoad() {
super.viewDidLoad()
print(data ?? "No hi ha dades")
}
}Resum
En aquesta secció, hem après a utilitzar Storyboards i Interface Builder per crear interfícies d'usuari en aplicacions iOS. Hem vist com afegir elements d'interfície, connectar-los amb el codi Swift i navegar entre vistes utilitzant segues. Aquestes habilitats són fonamentals per al desenvolupament d'aplicacions iOS i ens permeten crear aplicacions amb interfícies d'usuari atractives i funcionals.
Curs de Programació en Swift
Mòdul 1: Introducció a Swift
- Introducció a Swift
- Configuració de l'Entorn de Desenvolupament
- El Teu Primer Programa en Swift
- Sintaxi i Estructura Bàsica
- Variables i Constants
- Tipus de Dades
Mòdul 2: Flux de Control
Mòdul 3: Funcions i Closures
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Closures
- Funcions d'Ordre Superior
Mòdul 4: Programació Orientada a Objectes
Mòdul 5: Swift Avançat
Mòdul 6: Swift i Desenvolupament iOS
- Introducció al Desenvolupament iOS
- Conceptes Bàsics de UIKit
- Storyboards i Interface Builder
- Xarxes en Swift
- Core Data
- Conceptes Bàsics de SwiftUI
