Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 8 di 32
  • livello intermedio
Indice lezioni

Gestire l'interfaccia: ViewController e view

Due oggetti fondamentali per la realizzazione di un'applicazione iOS e della sua interfaccia: View Controller e la view
Due oggetti fondamentali per la realizzazione di un'applicazione iOS e della sua interfaccia: View Controller e la view
Link copiato negli appunti

Dopo avere introdotto la classe AppDelegate, andiamo a presentare altri due oggetti fondamentali per la realizzazione di un'applicazione per iOS: il View Controller e la view.

Un View Controller rappresenta l'elemento cardine di ogni applicazione iOS in quanto svolge il ruolo di gestore delle sue views (che rappresentano l'interfaccia che l'utente vede sul dispositivo) e quello di controllore, mettendo in relazione le varie views con il modello dei dati. La classe UIViewController possiede, come attributo, una view, ma nulla vieta di aggiungerne altre e consentire così al ViewController creato di gestire un'intera gerarchia di views.

La classe UIView definisce un'area rettangolare sullo schermo del dispositivo all'interno della quale posizionare gli elementi grafici della pagina. Durante l'esecuzione dell'applicazione il compito di una view è quello di mostrare a schermo i contenuti (inseriti su di essa) e gestire l'interazione dell'utente con tali contenuti (ad esempio tocchi su pulsanti e gestures).

La peculiarità della classe UIView è quella di permettere l'incapsulamento di altre views creando una struttura padre-figlio: il padre viene detto superview mentre i suoi figli subviews. Per la creazione di una gerarchie di views è sufficiente fare riferimento a due metodi (vedremo più avanti, con un esempio, come utilizzarli):

  • metodo addSubView: aggiunge una view figlia alla superview;
  • metodo removeFromSuperview: rimuove una subView dalla superView.

Gli oggetti grafici che ci vengono messi a disposizione dall'SDK eriditano tutti dalla classe UIView e quindi su di essi potremo invocare i precedenti metodi.

A questo punto, vediamo la procedura necessaria per aggiungere un View Controller al nostro progetto HelloWorld. Torniamo su Xcode e dal menu in alto, selezioniamo File, poi andiamo sulla voce New ed infine clicchiamo su New File; si aprirà una nuova finestra come quella mostrata
nella seguente figura:

Figura 19: Creazione di un nuovo View Controller selezionando la tipologia della classe
(clic per ingrandire)

Figura 19: Creazione di un nuovo View Controller selezionando la tipologia della classe

Come possiamo vedere è possibile scegliere diverse tipologia di classe (che in codice si traduce in ereditarietà) tra cui UIViewController che ci interessa adesso; selezioniamo tale voce e clicchiamo su next. Si aprirà la seguente finestra:

Figura 20: Scelta del nome e delle proprietà del nuovo View Controller
(clic per ingrandire)

Figura 20: Scelta del nome e delle proprietà del nuovo View Controller

Inseriamo dunque il nome del nuovo View Controller, la classe da cui ereditare (lasciamo UIViewController come ci propone Xcode) ed infine assicuriamoci che non siano presenti le spunte su i due checkbox. Cliccando su next per terminare la procedura di creazione la finestra scomparirà e il nuovo View Controller apparirà nella lista dei file di progetto in alto a sinistra.

Il file FirstViewController.h, contiene esclusivamente il prototipo della classe dato che tutti gli elementi a cui potremo accedere, compresa la view del View Controller, sono ottenuti grazie all'ereditarietà dalla classe UIViewController. Cliccando sul file FirstViewController.m troviamo l'implementazione della classe appena creata. Analizziamo i metodi di maggior interesse:

  • initWithNibName:bundle:: rappresenta il metodo di init di default dei View Controller;
  • shouldAutorotateToInterfaceOrientation:: è il metodo che viene richiamato direttamente dal dispositivo quando viene rilevato un cambiamento di rotazione. In questo metodo potremo decidere se supportare o meno tutte le orientazioni del dispositivo.

Nella prossima lezione, fatte queste premesse, potremmo passare a provare una nostra applicazione di prova sull'emulatore.

Ti consigliamo anche