Impariamo a gestire più view nella nostra applicazione.
Gestire più view in un'applicazione è un'operazione abbastanza comune, ma potrebbe spaventare l'idea di dover implementare i meccanismo di cambio view, per fortuna ci viene in aiuto InterfaceBuilder che, con pochi click e poche righe di codice ci permette di creare applicazioni con molte view automatizzando il tutto.
Iniziamo con il creare il nostro progetto.

Scegliamo Window-Based Application. In questo caso dovremo creare da noi i collegamenti e le view, ma ci permetterà di capire come funziona il tutto, per le prossime applicazioni siate liberi di usare direttamente "Tab-Bar Application che automatizzerà le operazioni che vedremo in questo tutorial.
La struttura della nostra applicazione è scarna, abbiamo un MainWindow.xib e la classe tabbarAppDelegate.
Apriamo il file xib e aggiungiamo un elemento di tipo Tab-Bar controller.

Interface Builder ha creato per noi un elemento di tipo Tab Bar Controller con 2 subview.

Iniziamo con il personalizzare gli elementi:
Clickiamo su Tab-Bar Item (item 1) e osserviamo l'inspector:

Una breve spiegazione per ogniuno degli elementi:
- Badge: Possiamo inserire un qualsiasi testo. Possiamo settarlo a priori, oppure via codice usando la proprietà badgeValue della classe UITabBarItem.
- Identifier: Inserisce un'immagine tra quelle standard, aprendo il menu vi renderete conto meglio di cosa sto parlando.
- Title: Il titolo dell'elemento.
- Image: L'immagine personalizzata che possiamo inserire nell'item. Attenzione, per avere un'immagine a disposizione questa dovrà far parte delle nostre risorse.
- Enabled: Abilita o disabilita l'elemento.
Volendo possiamo aggiungere tutti gli elementi che vogliamo alla tab-bar, per farlo trasciniamo all'interno dell'elemento Tab-Bar Controller le subview, anche gerarchicamente:

Che produrrà:

Da questa immagine possiamo anche vedere il badge nel primo tab.
Abbiamo quindi finito di disegnare la nostra interfaccia, ora colleghiamola alla nostra finestra.
Apriamo il file tabbarAppDelegate.h e modifichiamolo come segue:
#import <UIKit/UIKit.h>
@class tabbarViewController;
@interface tabbarAppDelegate : NSObject {
IBOutlet UIWindow *window;
IBOutlet UITabBarController *tabBarController;
}
@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) UITabBarController *tabBarController;
@end
E l'implementazione:
#import "tabbarAppDelegate.h"
@implementation tabbarAppDelegate
@synthesize window, tabBarController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:[tabBarController view]];
// Override point for customization after app launch
[window makeKeyAndVisible];
}
- (void)dealloc {
[tabBarController release];
[window release];
[super dealloc];
}
@end
Col codice al momento abbiam finito, torniamo su InterfaceBuilder e seleziamo l'App-delegate. Selezioniamo dall'inspector le connessioni e colleghiamo l'outlet creato pocanzi via codice all nostro Tab Bar Controller:

Stop. Salviamo tutto, compiliamo e lanciamo il simulatore da xCode:

Clickiamo nei vari tab-item e divertiamoci a cambiare view senza aver scritto, quasi, un rigo di codice :)
Intanto complimenti, davvero esaustivo. Poi volevo sapere, come si gestiscono le viste dei vari tab? Ho provato a creare una nuova classe da xcode, addociarla al file owner del tabbarcontroller, creando gli outlet ed actions del file owner, per poi editare i files classecreata.h e .m ....evidentemente sbaglio perchè non funziona...



purtroppo in questi giorni non mi sto potendo dedicare ne alla guida ne alla programmazione per iphone, spero di riprendere al più presto, lavoro permettendo.