Compatibile con Xcode 8

Come aggiungere ed eliminare da una TableView in Swift

ENTRA NEL NOSTRO GRUPPO FACEBOOK

Questa è la seconda parte del tutorial Creare una Table View con ricerca in Swift. Se sei arrivato qui senza passare dalla prima parte ti consiglio comunque di dargli un’occhiata.

Nel precedente tutorial hai visto come creare e riempire una Table View con il linguaggio Swift. L’applicazione che hai creato serviva per la gestione di una lista della spesa. A quell’app mancavano ancora due funzioni essenziali che imparerai ad implementare in questa guida:

  • Inserire un elemento nella Table View.
  • Eliminare un elemento dalla Table View.

Quindi, in questo tutorial, vedrai come aggiungere ed eliminare elementi da una TableView in Swift.

Non sottovalutare mai l’aspetto interattivo della tua applicazione. L’utilizzatore medio, quando scarica un’applicazione, tende a farla diventare propria.

Peppe, ma se l’applicazione l’ho creata io come può diventare di qualcun altro?

Mi spiego meglio. Chi scarica un’applicazione si aspetta che essa possa essere personalizzabile e per personalizzabile non intendo solo l’aspetto esteriore, il look, ma anche il feel o comportamento. Quello che voglio dire è:

Se la tua applicazione non permette la modifica dei contenuti, che siano le impostazioni, la disposizione delle finestre, l’inserimento di nuovi elementi ecc ecc, allora la tua non è una buona applicazione. E lo sai meglio di me, una brutta applicazione non guadagna.

Adesso torniamo a noi.

Inserire un elemento nella TableView

La prima cosa che devi fare è, inserire un bottone, bello in vista, che permetterà l’inserimento di un nuovo elemento nella lista e di conseguenza nella TableView.

Apri Xcode ed il progetto ListaSpesa (ricordo che questo tutorial è la seconda parte del tutorial: Creare una Table View con ricerca in Swift). Vai nello storyBoard e, dall’Object Library (in basso a destra), trascina un elemento UIBarButton nella Top Bar (accanto al nome dell’applicazione). Rinominalo, con un doppio click, in “Aggiungi“.

Adesso devi creare una connessione di tipo IBAction tra il bottone e la ListaTableViewController.swift. Rinomina l’IBAction in “aggiungiElemento“, se qualcosa ti è sfuggita, guarda l’animazione qui sotto (l’animazione è della versione passata del progetto ma i passaggi sono essenzialmente gli stessi):

bottone aggiungi e tableview

Se non ti ricordi come si fanno questi passaggi e da dove saltano fuori, li ho spiegati nel primo tutorial sulla realizzazione di un’applicazione iOS in cui ho spiegato cos’è una IBAction e IBoutlet.

Aggiungere un elemento da UIAlertController

Aggiungi il seguente codice al metodo aggiungiElemento_clicked:

 

Il codice è commentato e spiegato passo passo.

Ti riassumo comunque cosa fa. Per evitare di creare un’altra View, ho preferito creare una UIAlertView: la classica finestra che compare in risalto per comunicarti un errore (per questo si chiama Alert) oppure per chiederti di interagire con essa. Ho spiegato cos’è una AlertView in questo tutorial AlertView e ActionSheet.

Così ogni qual volta che l’utente premerà il bottone “Aggiungi” verrà creata una finestra di Alert che richiederà l’inserimento di un nome per l’alimento e uno per la categoria. L’AlertController ha due Action, la prima è Salva che permette di inserire il nuovo Alimento alla lista e il secondo è Esci. Nota bene che la Action Salva si occupa solo di inserire l’elemento in lista. L’inserimento nella Table View viene fatto in modo implicito richiamando il metodo reloadData() che a sua volta riattiverà il conteggio delle Row e l’inserimento della nuova Cell nella nuova righa.

Sia Salva che Esci sono Closure (un particolare modo di esprimere una funzione in Swift, per maggiori info visita il corso gratuito di programmazione Swift).

Build & Run (avvia l’applicazione dal tasto in alto a sinistra a forma di triangolo). La tua applicazione, grazie alla pressione del tasto “Aggiungi” dovrebbe essere in grado di aggiungere un elemento alla lista e quindi alla Table View:

Come aggiungere ed eliminare elementi da una TableView in Swift

Da qui in poi si presenterà un problema, che non risolverò in questo tutorial, che consiste nella perdita dei dati inseriti alla chiusura dell’applicazione.

Infatti i primi elementi che spuntano in lista sono quelli che per default hai inserito nel codice, mentre quelli inseriti con il tasto “Aggiungi” risiedono nella lista che viene allocata in memoria ogni qual volta viene avviata l’applicazione e ad ogni chiusura dell’applicazione l’array viene distrutto insieme agli elementi aggiunti.

Per risolvere questo problema dovrai far uso del Core Data (per salvare gli elementi nell’iphone) o di uno storage come un Database o un servizio gratuito come Parse.

Se sei interessato a queste soluzioni visita questi tutorial:

Cancellare un elemento dalla TableView

Distruggere in natura è stato sempre più semplice che creare. Fortunatamente (o forse no :D) lo stesso vale per la programmazione.

Avrai sicuramente fatto caso che con iOS 8, ma già anche dalle versioni precedenti, trascinando verso sinistra un elemento della Table View sei in grado di accedere a delle opzioni come la cancellazione o altre utili funzioni.

Cancellare un elemento da una Table View in Swift

Adesso vedrai come implementare il metodo per la cancellazione di un elemento dalla TableView.

I metodi canEditRowAtIndexPath e il commitEditingStyle

Apri il ListaTableViewController.swift e aggiungi i seguenti metodi:

Il primo, il canEditRowAtIndexPath sblocca le funzioni di modifica di una riga, mentre il secondo, cioè il commitEditingStyle, controlla quando viene selezionata l’azione Delete e rimuove sia dalla lista che dalla Table View l’elemento della riga di indice indexPath.

Semplice no?

creare un'app lista in swift - Aggiungere ed eliminare elementi da una Table View

Conclusione e Download del progetto

Benissimo! Hai concluso il tutorial come aggiungere ed eliminare da una TableView in Swift.

Adesso dovresti aver appreso i primi strumento per l’utilizzo di una Table View. Aggiungere ed eliminare gli elementi da una table view è solo una delle tante caratterizzazioni possibili, te ne avrei potuto far vedere altre ma ho preferito non mischiare troppi argomenti.

Dove andare da qui

Il prossimo passo che ti aspetta è quello di salvare i dati nella memoria del dispositivo e iniziare ad ingrandire il progetto. Ti consiglio la lettura di questi tutorial:

Download del progetto finale

Se comunque hai avuto problemi con il tuo progetto, qui sotto trovi il download del mio:

[sociallocker]
App lista spesa in Swift  – Aggiungere ed eliminare elementi [wpdm_package id=’1130′]
[/sociallocker]

Buona Programmazione!

Start typing and press Enter to search

Creare una Table View con ricerca in Swiftsize-class-in-xcode-con-auto-layout