Guida XCODE utilizzo di View-based application e ViewController
Pagina 1 di 1
Guida XCODE utilizzo di View-based application e ViewController
Dopo una breve parentesi sulla gestione della memoria, apriamo un
nuovo progetto in Xcode e questa volta scegliamo, come template, View-based application (ho assegnato a questo nuovo progetto il nome "TutorialMrWebmaster").
Come possiamo vedere vengono generati due file
entrmbi con i rispettivi file di intestazione.
Se andiamo ad aprire il file header del delegato vedremo che ci sono
alcune novità rispetto a quanto visto precedentemente. Prima di tutto
viene effettuata una dichiarazione della classe TutorialMrWebmasterViewController con la seguente linea di codice:
@class TutorialMrWebmasterViewController
Questa direttiva sta ad indicare al compilatore che la classe è definita
da qualche parte all'interno del progetto senza importarla.
Ma perchè non abbiamo usato il consueto #import? Perchè, per
esempio, se avessimo avuto la necessità di importare nel viewcontroller
il delegato, dato che le due classi si sarebbero incluse a vicenda, non
l'avremo potuto fere. Nel nostro caso base, tuttavia, non sussistendo
questo pericolo, al posto del costrutto sopra presentato avremo potuto
tranquillamente utilizzare #import.
La seconda aggiunta che troviamo nel codice è la dichiarazione di un oggetto relativo al ViewController della classe.
TutorialMrWebmasterViewController *viewController;
con la rispettiva property.
Il ViewController
Prima di andare a vedere cosa contiene il ViewController, bisogna capire che cosa rappresenta.
Facendo una traduzione letteraria della parola vediamo che questo
oggetto non è altro che un "controllore della vista", questo oggetto,
cioè, si preoccupaerà di gestire tutto ciò che accade alla vista, come
per esempio la pressione di un bottone da parte di un utente.
Ovviamente è possibile associare ad un ViewController la gestione di più
viste. Dato che i dispositivi mobili hanno uno schermo molto più
piccolo rispetto a quello di un computer, in molti casi è necessario
utilizzare un ViewController che gestisce più viste per poter mostrare
all'utente l'intero contenuto. In questo caso il ViewController dovrà
gestire la gerarchia di view caricando e rimuovendo dalla window la view
corretta.
E' buona norma, comunque, far gestire al ViewController un numero
ristretto di view e magari creare più ViewController per generare un
codice più leggibile e di più facile manutenzione. Per esempio, in un
gioco si potrebbe pensare di creare un viewController per il menù e
tanti ViewController quante sono le voci del menù (vedremo più avanti
come fare): per esempio, ne avremo uno per il gioco vero e proprio, un
altro per la pagina di opzioni, un'altro per il settaggio della lingua e
così via.
Se apriamo il file di implementazione relativo al ViewController
vedremo che sono presenti alcuni metodi che però sono commentati. E'
opportuno fare una rapida analisi sull'utilità dei metodi principali:
nuovo progetto in Xcode e questa volta scegliamo, come template, View-based application (ho assegnato a questo nuovo progetto il nome "TutorialMrWebmaster").
Come possiamo vedere vengono generati due file
- TutorialMrWebmasterAppDelegate
- TutorialMrWebmasterViewController
entrmbi con i rispettivi file di intestazione.
Se andiamo ad aprire il file header del delegato vedremo che ci sono
alcune novità rispetto a quanto visto precedentemente. Prima di tutto
viene effettuata una dichiarazione della classe TutorialMrWebmasterViewController con la seguente linea di codice:
@class TutorialMrWebmasterViewController
Questa direttiva sta ad indicare al compilatore che la classe è definita
da qualche parte all'interno del progetto senza importarla.
Ma perchè non abbiamo usato il consueto #import? Perchè, per
esempio, se avessimo avuto la necessità di importare nel viewcontroller
il delegato, dato che le due classi si sarebbero incluse a vicenda, non
l'avremo potuto fere. Nel nostro caso base, tuttavia, non sussistendo
questo pericolo, al posto del costrutto sopra presentato avremo potuto
tranquillamente utilizzare #import.
La seconda aggiunta che troviamo nel codice è la dichiarazione di un oggetto relativo al ViewController della classe.
TutorialMrWebmasterViewController *viewController;
con la rispettiva property.
Il ViewController
Prima di andare a vedere cosa contiene il ViewController, bisogna capire che cosa rappresenta.
Facendo una traduzione letteraria della parola vediamo che questo
oggetto non è altro che un "controllore della vista", questo oggetto,
cioè, si preoccupaerà di gestire tutto ciò che accade alla vista, come
per esempio la pressione di un bottone da parte di un utente.
Ovviamente è possibile associare ad un ViewController la gestione di più
viste. Dato che i dispositivi mobili hanno uno schermo molto più
piccolo rispetto a quello di un computer, in molti casi è necessario
utilizzare un ViewController che gestisce più viste per poter mostrare
all'utente l'intero contenuto. In questo caso il ViewController dovrà
gestire la gerarchia di view caricando e rimuovendo dalla window la view
corretta.
E' buona norma, comunque, far gestire al ViewController un numero
ristretto di view e magari creare più ViewController per generare un
codice più leggibile e di più facile manutenzione. Per esempio, in un
gioco si potrebbe pensare di creare un viewController per il menù e
tanti ViewController quante sono le voci del menù (vedremo più avanti
come fare): per esempio, ne avremo uno per il gioco vero e proprio, un
altro per la pagina di opzioni, un'altro per il settaggio della lingua e
così via.
Se apriamo il file di implementazione relativo al ViewController
vedremo che sono presenti alcuni metodi che però sono commentati. E'
opportuno fare una rapida analisi sull'utilità dei metodi principali:
- initWithNibName: si può effettuare un override di
questo metodo per effettuare dei setup dell'applicazione prima che venga
caricata la vista. In questo metodo solitamente si inserisce la
dichiarazione nella quale viene associato un delegato ad un controller. - loadView: in questo metodo può essere inserito il
codice relativo alla struttura della nostra view tutto tramite codice.
E' possibile creare una gerarchia di view o di altri elementi UI. Nelle
applicazioni di esempio lavoreremo principalmente su questo metodo. - viewDidLoad: in questo metodo andremo ad inserire
il codice per aggiungere altri elementi dopo che è già stata caricata la
view da un file .xib. Questo è un metodo molto utilizzato dato che
solitamente si costruisce la struttura base della view con Interface
Builder e poi vengono aggiunti alcuni elementi, per esempio dipendenti
dallo statod dell'applicazione, direttamente via codice. - shouldAutorotateToInterfaceOrientation: metodo nel
quale si specifica se si vuole il resize della view nel caso in cui si
ruoti il dispositivo da verticale ad orizzontale o viceversa.
andre- Admin
- Messaggi : 1791
Wrong Points : 2514
Reputazione : 7
Data d'iscrizione : 06.12.10
Età : 31
Personaggio GDR
Nome del personaggio: Zeod
Livello: 1
Esperienza:
(6/100)
Argomenti simili
» Guida XCODE Creare una vista (view) utilizzando il codice
» Guida XCODE Applicazione window-based: analisi del codice
» Guida XCODE introduzione sviluppare applicazioni iPhone iPad Mac
» Guida XCODE principiante La Prima Applicazione iPhone iPad Mac "Hello World"
» Guida XCODE Funzione main e gestione della memoria sviluppo applicazioni
» Guida XCODE Applicazione window-based: analisi del codice
» Guida XCODE introduzione sviluppare applicazioni iPhone iPad Mac
» Guida XCODE principiante La Prima Applicazione iPhone iPad Mac "Hello World"
» Guida XCODE Funzione main e gestione della memoria sviluppo applicazioni
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.
Sab Set 04, 2021 10:40 pm Da rondani2003
» la mia vita
Gio Lug 31, 2014 12:17 pm Da lindaluigiangelo
» Ciao a tutti
Dom Ott 13, 2013 9:30 am Da Primahs
» Ciao a todos
Lun Set 16, 2013 6:39 pm Da Primahs
» ciao ciao a tutti
Lun Set 16, 2013 6:38 pm Da Primahs
» YoEveryone
Ven Set 13, 2013 3:22 pm Da Primahs
» ciao a tutti
Sab Ago 31, 2013 11:44 am Da Primahs
» Ciao a tutti
Sab Ago 31, 2013 11:44 am Da Primahs
» salve a tutti !!
Sab Ago 31, 2013 11:43 am Da Primahs