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

Creiamo la barra delle tab

Creiamo i ViewControllers necessari ed inseriamo il TabBarController per gestire la navigazione nell'applicazione
Creiamo i ViewControllers necessari ed inseriamo il TabBarController per gestire la navigazione nell'applicazione
Link copiato negli appunti

Iniziamo la creazione del nostro progetto di prova seguendo le istruzioni elencate nei capitoli precedenti. La prima cosa che è necessario fare è l'inserimento della TabBar posizionata nella parte bassa dello schermo come possiamo vedere, per esempio, nell'applicazione Orologio preinstallata sui dispositivi Apple:

Figura 34: Esempio di utilizzo della TabBar nell'applicazione OrologioEsempio di utilizzo della TabBar nell'applicazione Orologio

Quello di cui abbiamo bisogno è un'istanza di UITabBarController che è un view controller specializzato nella gestione di altri view controller. Un oggetto di tipo UITabBarController, come possiamo vedere dalla figura precedente, possiede un insieme di tab le quali sono associate ad altrettanti view controller creati dallo sviluppatore.

Quando l'utente tocca una tab viene mostrato a schermo la view del view controller associata al tab selezionato, andando a sostituire qualsiasi altro contenuto mostrato precedentemente.

Le operazione che dobbiamo compiere per realizzare questa prima parte del progetto sono sostanzialmente due: creare i view controller di cui avremo bisogno ed associarli ad un oggetto UITabBarController.

Seguendo la procedura esposta nei capitoli precedenti per la creazione di un nuovo file da aggiungere al progetto creiamo due view controller con i seguenti nomi: InsertViewController e ListViewController. Inoltre nel metodo initWithNibName: bundle:, inseriamo una colorazione diversa per la view dei due View Controller con il seguente codice nel file InsertViewController.m:

self.view.backgroundColor = [UIColor redColor];

e nel file ListViewController.m

self.view.backgroundColor = [UIColor yellowColor];

A questo punto non ci resta che istanziare un oggetto di tipo UITabBarController ed associare alle sue tab i view controllers che abbiamo creato precedentemente. Come abbiamo detto nelle lezioni precedenti, l'AppDelegate è la classe in cui viene inizializzata l'applicazione ed è per questo che dovremo inserire l'oggetto UItabBarController proprio in tale classe dichiarandolo come dato membro nel file AppDelegate.h:

@interface AppDelegate : UIResponder <UIApplicationDelegate>{
    UITabBarController *_tabBarController;
}

Adesso spostiamo nel file AppDelegate.m ed aggiungiamo gli header file necessari:

#import "InsertViewController.h"
#import "ListViewController.h"

Infine posizioniamoci nel metodo application: didFinishLaunchingWithOptions: e prima dell'invocazione al metodo makeKeyAndVisible della window inseriamo il seguente codice:

NSMutableArray *controllers = [[NSMutableArray alloc] initWithCapacity:2];
_tabBarController = [[UITabBarController alloc]init];
ListViewController *listViewController = [[ListViewController alloc]initWithNibName:nil bundle:nil];
listViewController.title = @"Lista";
listViewController.tabBarItem.image = [UIImage imageNamed:@"list.jpg"];
InsertViewController *insertViewController = [[InsertViewController alloc]initWithNibName:nil bundle:nil];
insertViewController.title = @"Inserimento";
insertViewController.tabBarItem.image = [UIImage imageNamed:@"plus.jpg"];
[controllers addObject:insertViewController];
[controllers addObject:listViewController];
_tabBarController.viewControllers = controllers;

Facciamo una breve analisi del codice inserito. Come prima cosa viene dichiarato l'array controllers con dimensione 2 che andrà a contenere i view controllers che saranno associati all'oggetto UITabBarController che viene allocato ed inizializzato nella linea successiva. Passiamo poi alla dichiarazione dei due view controllers (nella stessa maniera vista precedentemente nel progetto Hello World) che saranno associati ai tab del'oggetto tabBarController. Come possiamo vedere, ad entrambi i view Controllers, settiamo la property title il cui testo verrà mostrato nel bottone della TabBar ed aggiungiamo i view controllers all'array controllers.

Infine associamo l'array controllers (che ricordiamo conterrà un oggetto di tipo InsertViewController ed uno ListViewController) all'array viewControllers dell'oggetto tabBarController. Infine invochiamo il metodo addSubView sulla window e passiamo come parametro la view del tabBarController per mostrarla a schermo.

Compilando l'applicazione il risultato che otterremo è il seguente:

Figura 35: Schermate dell'applicazione dopo l'inserimento della tabBar
(clic per ingrandire)


Figura 35: Schermate dell'applicazione dopo l'inserimento della tabBar

Nella prossima lezione andremo ad aggiungere un'icona per ogni tab del tabBarController.

Ti consigliamo anche