A questo punto siamo pronti per dare forma all'Hello World ed eseguire per la prima volta un'applicazione sul simulatore. Le operazioni che andremo ad effettuare saranno sostanzialmente due: inserire una label all'interno del FirstViewController
ed infine mostrarla a schermo.
Aggiungiamo la label Hello World
Come abbiamo detto nella lezione precedente tutti i View Controllers posseggono un init di default che andremo ad utilizzare in questo primo progetto. Come possiamo notare il corpo del metodo contiene già qualche linea di codice che riportiamo per comodità di seguito:
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
Nella prima riga di codice viene invocato lo stesso metodo di init della superclasse (ricordiamo che la nostra classe FirstViewController
deriva da UIViewController
) e dopo viene eseguito un if sul valore del self per assicurarci che la chiamata al super sia stata fatta correttamente. A questo punto possiamo inserire, all'interno dell'if, la nostra label Hello World nel seguente modo:
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 300, 50)];
myLabel.text = @"Hello World";
myLabel.textColor = [UIColor blackColor];
[self.view addSubview:myLabel];
[myLabel release];
Nel codice proposto allochiamo ed inizializziamo la label assegnandole un frame che rappresenta la posizione e la dimensione del nostro oggetto. I parametri in ingresso alla funzione CGRectMake
(che definisce un rect, ovvero un'area precisa dello schermo) sono rispettivamente: l'offset x rispetto all'origine, l'offset y rispetto all'origine, larghezza ed altezza (nella prossima lezione parleremo più approfonditamente del sistema di riferimento). Per il momento ignoriamo l'invocazione del metodo release
sull'oggetto UILabel
dato che l'argomento verrà trattato successivamente.
Assegnamo poi (rigo 2) il testo alla label, definiamo il colore del testo ed infine aggiungiamo la label alla gerarchia della view presente nel View Controller invocando il metodo addSubView
(senza l'invocazione di tale metodo la label non sarà visibile a schermo).
Mostriamo a schermo il View Controller
L'ultima operazione che andiamo ad eseguire è quella di mostrare a schermo il nostro FirstViewController
. Per fare ciò, spostiamoci nel file AppDelegate.m
ed importiamo l'header file della nostra classe nel seguente modo:
#import "FirstViewController.h"
Posizioniamoci ora nel metodo application: didFinishLaunchingWithOptions:
e prima della chiamata al metodo makeKeyAndVisible
inseriamo il seguente codice:
FirstViewController * myViewController = [[FirstViewController alloc]initWithNibName:nil bundle:nil];
self.window.rootViewController = myViewController;
[myViewController release];
Come prima cosa allochiamo il nostro View Controller passando come argomenti al metodo di init di default il valore nil dato che non richiediamo il caricamento di un'interfaccia grafica realizzata con Interface Builder. Infine impostiamo il View Controller appena creato come rootViewController
, ovvero come radice della gerarchia di View Controller associati alla Window (anche in questo esempio ignoriamo l'invocazione del metodo release
sul View Controller).
A questo punto siamo pronti per compilare il progetto; clicchiamo sul tasto di Play in Xcode e dopo l'avvio del simulatore quest'ultimo mostrerà la seguente schermata:
Facile no?