Chiudi il Menu
iSpazioiSpazio
  • Notizie
  • Offerte iSpazio
  • Sfondi
  • Downloads
  • Recensioni
  • iOS 26
  • Sconti Amazon
Menu Espanso
  • Home
  • Forum
  • Notizie
  • Offerte iSpazio
  • iOS 26
  • iPhone 16
  • Downloads
  • Guide
  • Sconti Amazon
  • Contatti
  • Pubblicità
Facebook X (Twitter) Instagram YouTube TikTok
iSpazioiSpazio
  •  Forum
  • Offerte iSpazio
  • Wallpapers Central
  • Teslers
Scarica l'App
  • Offerte
  • Sfondi
  • Guide
    • Personalizzazione
    • Video Guide TikTok
  • Recensioni
  • Downloads
    • Sfondi
    • Suonerie
    • Comandi Rapidi
    • Sfondi Personalizzati
    • Widget e Altro
    • iOS
    • iTunes
  • Dispositivi Apple
    1. iPhone
    2. iPad
    3. Mac
    4. Apple Watch
    5. iOS 26
    6. Vedi tutto

    iPhone 17e arriverà nei primi mesi del 2026 con tre grandi novità

    3 Dic 2025

    iPhone 17e potrebbe adottare l’Isola dinamica | Rumor

    1 Dic 2025

    L’iPhone 17 fa ripartire il mercato smartphone cinese

    28 Nov 2025

    L’iPhone Air affonda e trascina con sé l’intero mercato degli smartphone ultra-sottili

    27 Nov 2025

    L’iPad Pro M5 svela un importante upgrade per il prossimo Studio Display

    1 Dic 2025

    iPad mini con display OLED previsto entro la fine del 2026 | Rumor

    27 Nov 2025

    iPad 12a generazione: cosa sappiamo davvero sul nuovo tablet economico di Apple in arrivo nel 2026

    20 Nov 2025

    Teardown iPad Pro M5: iFixit scopre lo spazio per una seconda fotocamera frontale

    1 Nov 2025

    Apple prepara quattro MacBook per il 2026

    1 Dic 2025

    L’iPad Pro M5 svela un importante upgrade per il prossimo Studio Display

    1 Dic 2025

    Cinque anni di Apple Silicon: Apple rivendica il momento d’oro del Mac

    18 Nov 2025

    Apple ha messo da parte, per il momento, il Mac Pro: nessun nuovo modello è in arrivo

    17 Nov 2025

    Apple pubblica il primo video ufficiale su come pulire l’Apple Watch

    26 Nov 2025

    Quando la stampa 3D incontra il design Apple: come nascono le nuove casse in titanio per Apple Watch

    18 Nov 2025

    Il prossimo grande restyling di Apple Watch non arriverà prima del 2028

    18 Nov 2025

    L’app myVW di Volkswagen è ora disponibile su Apple Watch

    14 Nov 2025

    Apple rilascia iOS 26.2 RC: la versione finale sarà disponibile per tutti la prossima settimana

    3 Dic 2025

    Spotify Wrapped 2025 è ora disponibile con nuove storie, funzioni interattive e una visione più personale dei nostri ascolti

    3 Dic 2025

    App Store, l’UE dà il via libera alla causa olandese contro Apple

    3 Dic 2025

    OpenAI sospende i piani pubblicitari dopo il “codice rosso” dichiarato da Sam Altman

    3 Dic 2025

    Apple rilascia iOS 26.2 RC: la versione finale sarà disponibile per tutti la prossima settimana

    3 Dic 2025

    Spotify Wrapped 2025 è ora disponibile con nuove storie, funzioni interattive e una visione più personale dei nostri ascolti

    3 Dic 2025

    App Store, l’UE dà il via libera alla causa olandese contro Apple

    3 Dic 2025

    OpenAI sospende i piani pubblicitari dopo il “codice rosso” dichiarato da Sam Altman

    3 Dic 2025
  • iPhone 17
  • iOS 26
  • Sconti Amazon
Contatti
Pubblicità
iSpazioiSpazio
  • Notizie
  • Offerte iSpazio
  • Sfondi
  • Downloads
  • Recensioni
  • iOS 26
  • Sconti Amazon
iPhone

iSpazio Developer Program #11 – Come gestire più viste create con Interface Builder

Andrea BusiDi Andrea Busi26 Feb 2009Commenta8 min di lettura
Condividi Facebook Twitter Telegram WhatsApp Copia Link Threads Email
Share
Facebook Twitter WhatsApp Telegram Threads Email Copia Link
In qualità di Affiliato Amazon, iSpazio riceve una commissione dagli acquisti idonei senza alcun costo per voi. (info).
Icona Cerchi Prodotti Apple ed accessori Tech in sconto?

Cerchi Prodotti Apple ed accessori Tech in sconto?

Segui il nostro canale @scontiamolo su Telegram!

Advertising

Eccoci con un nuovo tutorial nell’iSpazio Developers Program, dedicato alla programmazione con l’SDK per iPhone. Questa volta (su richiesta di parecchi utenti) ho deciso di trattare un argomento abbastanza ostico in XCode, ovvero la gestione di più viste create con Interface Builder. IB è uno strumento davvero ottimo che ci permette di creare la parte grafica della nostra applicazione senza grossi sforzi, ma spesso poi diventa problematico gestire tutte le vise via codice. In questo tutorial vedremo come creare due viste distinte, e come passare da una all’altra mediante un semplice bottone.

Prima di iniziare devo premettere che questo tutorial è un pochino lungo, ma ho volutamente cercato di non saltare nessun passaggio per permettervi una maggiore comprensione. Se trovate qualche errore o qualche punto non ben chiaro non esitate a segnalarlo nei commenti!

TUTORIAL:

  1. Creiamo un nuovo progetto
  2. Creiamo la vista principale dell’applicazione
  3. Creiamo la vista (e la classe) “VistaUno”
  4. Facciamo caricare la prima vista all’avvio dell’applicazione
  5. Creiamo la vista (e la classe) “VistaDue”
  6. Impostiamo le azioni per muoverci tra le viste

1. Creiamo un nuovo progetto

Aprimo Xcode, selezioniamo “File -> New Project”. Nel menù che ci appare selezioniamo “ViewBased Application”, clicchiamo su “Choose…” e immettiamo come nome “viewTutorial” e fate clic su “Save”. Abbiamo così creato il nostro nuovo progetto.

Prima di fare qualsiasi altra operazione, selezioniamo nell’editor Xcode la cartella “Resources” del nostro progetto ed eliminiamo il file “viewTutorialViewController.xib”. Basterà cliccare con il tasto destro sul file, selezionare “Delete” e poi cliccare su “Also move to Trash”.

2. Creiamo la vista principale dell’applicazione

Una volta eseguite queste semplici operazioni, andiamo a creare l’interfaccia grafica della nostra applicazione. Facciamo doppio click sul file “MainWindow.xib”, si aprirà così l’Interface Builder, con cui ormai abbiamo già preso conoscenza.
Selezioniamo la vista della nostra applcazione, e apriamo l’Attribute Inspector. Nel campo “NIB Name” eliminiamo la voce “viewTutorialViewController” (semplicemente cancellando il testo), ovvero il file che abbiamo cancellato in precedenza.

immagine-165

Se premiamo poi invio e torniamo a selezionare la vista vedremo che essa ha mutato la scritta centrale, ed ora apparirà così:

immagine-232

Ora, dalla libreria (”Tools -> Library”) selezioniamo un componente di tipo “View” e trasciniamolo nella nostra applicazione. Andiamo poi in “Identity Inspector” e in Class scriviamo “MainView”.

Abbiamo creato la vista principale della nostra applicazione. In questo tutorial questa vista non ci servirà a molto, ma avrà solo il compito di ospitare le altre viste, che verrano richiamate da apposite azioni.

Ora, salviamo subito la classe relativa a questa vista, selezionando “File -> Write Class Files…” e salviamo la classe “MainView” nella cartella Classes del nostro progetto.

immagine-329

Clicchiamo su “Save” e nella schermata successiva selezioniamo il nostro progetto prima di cliccare su “Add”

immagine-421

3. Creiamo la vista (e la classe) “VistaUno”

Iniziamo ora a creare una prima vista, che chiameremo “vistaUno”, e verrà caricata di default all’avvio dell’applicazione. Tramite un bottone contenuto in questa vista sarà poi possibile aprire una seconda vista, che chiameremo “vistaDue”. Iniziamo, però, a creare la prima vista.

Inseriamo all’interno del file “MainWindow.xib” una vista (una UIView), in modo da avere un risultato come questo:

immagine-514

Se non visualizzate questo pannello, vi basterà andare nel menù “Window -> Document”. Facciamo ora doppio clic sulla vista appena inserita, e inseriamo i componenti a nostro piacimento, l’importante che ci sia almeno un bottone, avendo un risultato simile a questo:

immagine-613

Ora dobbiamo, come al solito, inserire gli elementi e le azioni. Entriamo nel pannello “Identity Inspector”, e inseriamo i seguenti componenti:

immagine-711

Come potete vedere abbiamo dichiarato la classe come “VistaUno”, e abbiamo inserito un componente “mainView”, che si riferisce alla vista principale, la “MainView”, quella che abbiamo detto gestire tutte le altre viste. Abbiamo, inoltre, dichiarato un’azione “vaiAsecondaView”, che dovremo associare al bottone presente in questa vista.
Entriamo, ora, in “Connections Inspector”, e colleghiamo l’azione “vaiAsecondaView” al bottone, selezionando “Touch Up Inside” quando appare il seguente pannello:

immagine-87

Colleghiamo, poi, l’elemento “mainView” con la vista principale, quella che abbiamo creato inizialmente, trascinando il solito pallino proprio sulla vista “MainView”. Se abbiamo eseguito tutto correttamente dovremmo avere un risultato come questo:

immagine-95

Abbiamo così configurato correttamente la prima vista da Interface Builder. Salviamo la classe selezionando sempre “File -> Write Class Files…” e assicurandoci che appaia il nome “VistaUno” per la classe (se non appare significa che abbiamo sbagliato qualcosa):

immagine-105

E ricordiamoci di spuntare il nostro progetto nella finestra che appare subito dopo aver cliccato su “Save”. Salviamo tutto e chiudiamo Interface Builder, tornando a XCode.

4. Facciamo caricare la prima vista all’avvio dell’applicazione

Ora dobbiamo fare in modo che questa vista (la “VistaUno”) venga caricata in automatico all’avvio dell’applicazione. Iniziamo a completare la dichiarazione della classe “VistaUno”, entrando nel file “VistaUno.h”. Completiamo il codice presente nel seguente modo:

immagine-1113

In questo passaggio abbiamo solamente completato l’intestazione.Dobbiamo, ora, implementare il metodo “vaiAsecondaView”. Il codice da inserire nel file “VistaUno.m” è il seguente:

immagine-271

Come potete notare questo metodo non compie nessuna azione sulle viste, ma richiama un metodo di “mainView” (che andremo a definire in seguito) che si occuperà della gestione di questa azione.

Torniamo, ora, nella classe “MainView”, a cui dobbiamo dire di caricare all’avvio la “vistaUno”. Apriamo il file “MainView.h” e, anche in questo caso, completiamo il codice già presente nel seguente modo:

immagine-1211

Abbiamo così dichiarato la nostra “vistaUno”. Ma come facciamo a caricarla all’avvio? Chi di voi ha seguito anche i vecchi tutorial, potrebbe ricordare che esiste un metodo che viene eseguito proprio all’avvio dell’applicazione: si tratta di “awakeFromNib”. Entriamo, quindi, in “MainView.m” e inseriamo il seguente codice:

immagine-1311

Questo metodo non fa altro che settare la “vistaUno” come “Subview”, ovvero come sotto-vista (ogni tanto XCode non è proprio intuitivo..). Abbiamo finito? Quasi! Ci manca ancora una piccola cosa. Dobbiamo collegare la “vistaUno”, che abbiamo appena dichiarato in “MainView”, con la vista effettiva che vogliamo che venga caricata. Questa operazione va eseguita, come sempre, in Interface Builder. Salviamo quindi tutti i file (io preferisco eseguire un “Build” per essere più sicuro) ed entriamo in Interface Builder, aprendo il file “MainWindow.xib”.
Entrando, ora, in “Connections Inspector” della vista “MainView” vedremo che è comparso un nuovo elemento, ovvero proprio la “vistaUno” che abbiamo appena dichiarato. La nostra finestra delle connessioni avrà il seguente aspetto:

immagine-1410

Dobbiamo semplicemente collegare questo elemento con la vista che vogliamo far caricare all’avvio, ovvero la “VistaUno” che abbiamo creato poco fa (per intenderci, quella composta dall’uno in grande e dal bottone). Trasciniamo il pallino che troviamo a fianco di “vistaUno” sulla vista corretta. Se abbiamo fatto le cose in maniera corretta avremo questo risultato:

immagine-1510

Chiudiamo Interface Builder salvando tutto. Clicchiamo ora su “Build and Go!” e se abbiamo eseguito tutto in maniera corretta si aprirà la nostra applicazione:

immagine-166

5. Creiamo la vista (e la classe) “VistaDue”

Abbiamo, fino ad adesso, creato e impostato la prima vista. Dobbiamo, ora, creare anche una seconda vista, che verrà aperta cliccando sul bottone presente nella nostra applicazione. Il procedimento è lo stesso che abbiamo utilizzato poco fa, quindi milimiterò a riportare i passaggi chiave.

Inseriamo una nuova vista nel nostro file “MainWindow.xib” (come fatto al punto 3) e inseriamo gli elementi a nostro piacere, avenendo cura di inserire almeno un bottone, che ci servirà per tornare alla “vistaUno”. La nostra vista si presenterà come questa:

immagine-172

I componenti e le azioni da impostare saranno le stesse della “VistaUno”, quindi il vostro pannello “Identity Inspector” apparirà così:

immagine-181

Mentre il pannello “Connections Inspector” avrà i seguenti elementi (che colleghiamo proprio come abbiamo fatto per la “VistaUno”):

immagine-192

Salviamo la nuova classe “VistaDue” e aggiungiamola come sempre al nostro progetto. Salviamo tutto e usciamo da Interface Builder.

6. Impostiamo le azioni per muoverci tra le viste

Prima di procedere all’inserimento del codice che controlla la navigazione tra le viste, dobbiamo concludere la dichiarazione della classe “VistaDue” (come abbiamo già fatto nel punto 4 per “VistaUno”). Aggiungiamo il seguente codice al file “VistaDue.h”:

immagine-201

Adesso andiamo a scrivere il codice relativo a tutti i metodi che ci servono, e che non abbiamo ancora implementato. Iniziamo dal file “VistaDue.m”, in cui delegheremo ancora l’azione alla classe “MainView”, proprio come abbiamo fatto in precedenza.

immagine-2110

Tutto come abbiamo già fatto per “VistaUno”.

Ora è giunto il momento di impostare la classe MainView, e tutti i metodi che gli abbiamo delegato. Apriamo il file “MainView.h” e completiamo la dichiarazione della classe nel seguento modo:

immagine-2210

Anche in questo caso non abbiamo fatto niente di particolare. Possiamo notare che abbiamo definito le due viste (“vistaUno” e “vistaDue”), e le due azioni (che potete riconoscere dal tipo di ritorno “IBAction”), che ora dobbiamo definire. Apriamo il file “MainView.m” e scriviamo il seguente codice:

immagine-233

Finalmente abbiamo definito i due metodi che si occupano della gestione delle viste. Potete vedere che sono praticamente uguali: prima rimuovono la vista presente e poi aggiungono quella nuova, ovvero quella da visualizzare.

Abbiamo quasi concluso! Salviamo tutti i file (io consiglio sempre di eseguire un “Build”) e torniamo in Interface Builder, aprendo il file “MainWindow.xib”. Nel “Connections Inspector” della vista principale (la “MainView”) dovreste vedere l’ultimo elemento che non abbiamo ancora collegato, ovvero la “vistaDue”:

immagine-241

Colleghiamo “vistaDue” con la seconda vista, proprio come abbiamo già fatto in precedenza con la “vistaUno). Il risultato di tale operazione sarà il seguente:

immagine-251

Ora abbiamo davvero finito! Salviamo tutto, chiudiamo Interface Builder e da XCode selezioniamo “Build and Go!”. Ecco la vostra applicazione finalmente funzionante:

immagine-26

Se Avete Problemi, questo è il nostro file di progetto.

La guida è stata creata da Andrea Busi per “iSpazio.net” e “Bubi Devs”, prendendo spunto dal seguente video tutorial in lingua inglese: “Multiple NIB Files – iPhone Development Central“. I meriti quindi relativamente alla versione inglese, sono del legittimo autore.

Sai che siamo anche su Telegram? Unisciti al nostro canale iSpazio per ricevere le notifiche oppure Apple Italia per chattare con altri utenti. Scopri i migliori prodotti Tech in sconto su Amazon con il nostro canale OFFERTE iSpazio.
Icona dell'applicazione Le Migliori Offerte Amazon disponibile su App Store

Le Migliori Offerte Amazon

Selezionate dalla redazione di iSpazio
GUARDALE LIVE  
  • Filtra:
  • Tutte
  • Minimo Storico
  • Amazon
  • Auto e moto
  • Moda
  • Salute e cura della persona
60%
Corsi di cucina online – Acadèmia TV
In Evidenza
Corsi di cucina online – Acadèmia TV99,00€39,50€
Amazon Music Unlimited: Gratis per 3 mesi – Streaming illimitato senza pubblicità, qualità del suono superiore e download offline
In Evidenza
Amazon Music Unlimited: Gratis per 3 mesi – Streaming illimitato senza pubblicità, qualità del suono superiore e download offline33,00€Gratis
84%  
Calze da Neve Omologate Italia EN 16662-1,Catene da neve tessili omologate e ad alta sicurezza – Kit di 2 catene per auto + guanti (Rosso Nero, M)
00:10
Calze da Neve Omologate Italia EN 16662-1,Catene da neve tessili omologate e ad alta sicurezza – Kit di 2 catene per auto + guanti (Rosso Nero, M)45,99€7,43€
70%  
Michael Kors Cronografo Bradshaw con cinturino in acciaio inossidabile argento per donna MK6174
00:08
Michael Kors Cronografo Bradshaw con cinturino in acciaio inossidabile argento per donna MK6174299,00€90,56€
77%  
THE PROTEIN WORKS Clear Diet Whey Protein Isolate, Amarena & Mela, Bevanda rinfrescante ad alto contenuto proteico 500 g
00:08
THE PROTEIN WORKS Clear Diet Whey Protein Isolate, Amarena & Mela, Bevanda rinfrescante ad alto contenuto proteico 500 g35,44€8,07€

Scarica la nostra app e leggi le notizie in mobilità. Porta iSpazio sempre con te, anche su Telegram.
| Applicazione iOS
Con l'applicazione ufficiale di iSpazio resterai sempre aggiornato sulle notizie Apple, video tutorial per iPhone e tanto altro. riceverai una notifica per ogni nuovo articolo. Puoi utilizzare anche i Widget per tenere le novità sott'occhio nella Home o nella Lockscreen.
Scaricala subito!
| Canale Telegram 10.700+ Utenti
Su Telegram invece, segnaliamo soltanto le notizie più importanti ed urgenti oppure i nostri nuovi video su YouTube. E' un canale molto interessante, assolutamente non invasivo perchè non inviamo troppe push, e vi consigliamo di seguirci anche lì.
Unisciti a noi!
ispazio notifiche
Seguici su Google News
Condividi Facebook Twitter Telegram WhatsApp Threads Email Copia Link
Articolo precedenteSway: Giocare con la fisica arrampicandosi | AppStore [Video]
Articolo successivo Cydia, possibile virus?

Articoli correlati

iPhone 17e arriverà nei primi mesi del 2026 con tre grandi novità

3 Dic 2025Commenta

iPhone 17e potrebbe adottare l’Isola dinamica | Rumor

1 Dic 2025Commenta

L’iPhone 17 fa ripartire il mercato smartphone cinese

28 Nov 2025Commenta

L’iPhone Air affonda e trascina con sé l’intero mercato degli smartphone ultra-sottili

27 Nov 2025Commenta

Leggi o Aggiungi Commenti

Advertising

Da non perdere!

Quando verrà rilasciato iOS 26.2?

2 Dic 2025

iOS 27: cosa aspettarci dal prossimo aggiornamento

27 Nov 2025

iPhone e Android ora possono scambiarsi file in modo diretto grazie alla nuova interoperabilità AirDrop–QuickShare

21 Nov 2025

iSpazio compie 18 anni: la più grande community Apple festeggia una nuova era

19 Nov 2025

Gli articoli più letti

Apple rilascia iOS 26.2 RC: la versione finale sarà disponibile per tutti la prossima settimana

Spotify Wrapped 2025 è ora disponibile con nuove storie, funzioni interattive e una visione più personale dei nostri ascolti

Info su iSpazio
Info su iSpazio

iSpazio è il punto di riferimento italiano per tutti gli appassionati Apple. Dal 2007, sul nostro sito trovi notizie, recensioni e guide per imparare ad utilizzare al meglio iOS, l'iPhone e tutti gli altri dispostivi dell'azienda.

Contattaci
Pubblicità

Il Network
Il Network

L'esperienza maturata su iSpazio ci ha portati, con il tempo, a realizzare altri progetti ed aprire nuovi siti con tematiche strettamente correlate al nostro Blog principale.

Oggi, siamo i fieri proprietari di un Network composto da: iSpazio, Scontiamolo, Wallpapers Central e Teslers.

Link Rapidi
  • Chi siamo
  • Contattaci
  • Legal
  • Privacy Policy
  • Pubblicità su
© Copyright 2025 iSpazio SRL | Partita IVA: 10137091210
  • Chi siamo
  • Contattaci
  • Legal
  • Privacy Policy
  • Pubblicità su

Scrivi quello che vuoi cercare e premi Invio.