• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

UIAlertView – Guida completa all’uso

By Guido Lodetti | on 31 Marzo 2010 | 7 Comments
Senza categoria

Ogni buon programma dovrebbe intercettare eventuali errori che si manifestano durante l’uso del programma, dovuti all’azione degli utenti o per qualunque altra causa esterna, e mostrare sul display un messaggio che li aiuti a correggere le scelte errate o comunque a capire cosa sta accadendo e perchè l’applicazione ha smesso di funzionare. Potreste inoltre aver bisogno per un qualsiasi altro motivo di attirare semplicemente l’attenzione dell’utente. Per tutto questo viene in nostro aiuto l’oggetto UIAlertView.


Alert View Example

Le basi

L’utilizzo di una alert view a livelli basilari non presenta difficoltà. Il seguente codice, ad esempio, farà apparire un semplice avviso contenente un titolo, un messaggio e un bottone “OK” per la chiusura dello stesso:

UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"Alert View Title" message:@"Alert View Text" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alertView show];
[alertView release];

Analiziamo insieme il codice:

UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"Alert View Title" message:@"Alert View Text" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];

Questa riga di codice inizializza il nostro alert.

Title e message sono rispettivamente il titolo ed il messaggio dell’alert; essi si distinguono inoltre per lo spessore del carattere: il primo è in grassetto mentre il secondo no.

Delegate è il delegato dell’alert. In questo caso il suo attributo è nullo, ma nella fase successiva della guida non lo sarà più.

CancelButtonTitle è il titolo del bottone che in genere viene usato per cancellare un’azione ed è espresso con una NSString. Nel nostro esempio abbiamo deciso di non metterlo poiché non vi era il bisogno di cancellare nulla.

OtherButtonTitles sono i titoli di tutti i restanti bottoni che vogliamo mettere. L’attributo è composto da una serie di NSString (ricordatevi di chiuderla con nil!).

Alla pressione di un bottone l’avviso scomparirà automaticamente.

[alertView show];

Questa istruzione serve a mostrare l’alert con la sua relativa animazione, penso che non vi sia da aggiungere altro.

[alertView release];

Avendo prima allocato l’oggetto è importante rilasciarlo!


Alert 1

Interagire con l’utente

Vediamo ora come possiamo effettuare certe azioni in base alla risposta dell’utente ad un avviso.
Vogliamo far sì che alla pressione del bottone “OK” venga mostrato in console un messaggio, mentre alla pressione del pulsante “Cancel” non venga mostrato nulla.
Per “captare” la risposta dell’utente all’avviso abbiamo bisogno di implementare il protocollo UIAlertViewDelegate nella classe del nostro documento (generalmente il file di intestazione .h).

@interface MiaSottoclasse : NSObject  {
}

Il nome della sottoclasse e della classe varierà ovviamente a seconda del progetto.

Come possiamo osservare anche nella documentazione Apple il protocollo ci offre nuovi metodi con i quali essere notificati.

Prendiamo in considerazione questo:

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex

Il metodo relativo al tasto premuto viene chiamato quando una Alert View si accinge a sparire. Nei suoi attributi troviamo infatti l’index, (l’identificativo) del bottone premuto. L’index va da 0, per il primo tasto in ordine di apparizione, a salire.

Inizializiamo il nostro avviso come visto in precedenza, questa volta specificando come delegato self, ovvero la propria classe e mettendo come attributo in cancelButtonTitle: @”Cancel”.

Modifichiamo ora il nostro metodo:

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex{
    if(buttonIndex == 0){
        // È stato premuto il bottone Cancel
    } else if (buttonIndex == 1){
        //È stato premuto il bottone OK
        NSLog(@"Bottone premuto: OK!");
    }
}

Nella nostra modifica è stato semplicemente aggiunto un ciclo if e un NSLog che mostra il messaggio in Console.


Alert 2

Customizzare una Alert View

Le Alert View non vengono solo utilizzate per comunicare errori o per messaggi o conferme agli utenti delle nostre applicazioni, possono essere infatti impiegate anche per mostrare altre informazioni. Ad esempio, potremmo usare un’AlertView personalizzata per mostrare il caricamento di un’altra vista, ovviamente però potremo farlo grazie ad alcune piccole modifiche. Ricordate infatti che una Alert View, è di fatti un UIView, (da cui eredita proprietà e metodi), e essendo tale, è in gran parte modificabile.

In questa parte della nostra guida vogliamo integrare in essa un indicatore di caricamento (UIActivityIndicatorView).

Per prima cosa inizializiamo la nostra “rotellina” e facciamola partire:

UIActivityIndicatorView * activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
	//La posizione dell'indicatore varia dal testo dell'alert
	activityView.frame = CGRectMake(121.0f, 50.0f, 37.0f, 37.0f);
	[activityView startAnimating];

Ora aggiungiamola al nostro alert e rilasciamola:

alertView3 = [[UIAlertView alloc] initWithTitle:@"Loading" message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
	//Aggiungo l'indicatore come una subview
	[alertView3 addSubview:activityView];
	[activityView release];
	[alertView3 show];

Quando proverete l’avviso noterete che non avrete alcun bottone per dimetterlo; sarete infatti voi a farlo via codice quando avrete finito di caricare tramite questa semplice istruzione:

[alertView3 dismissWithClickedButtonIndex:0 animated:YES];


Alert 3

Ogni alert è completamente customizzabile, potete infatti aggiungervi Text Fields, Sliders e quello che più preferite. Tenete comunque presente che il motivo per cui sono nati gli alert è esclusivamente quello di richiedere l’attenzione dell’utente!

Nel caso abbiate problemi nel seguire il codice della guida o vogliate per semplice curiosità scaricare il progetto contenente tutti gli esempi lo potete fare da qui.

Share this story:
  • tweet

Tags: FrameworkObjective-cprogrammazioneUIActivityIndicatoruialertview

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Microservizi per logiche applicative di grandi dimensioni

    27 Luglio 2016 - 0 Comment
  • Uno sguardo al runtime Objective-c

    10 Settembre 2013 - 0 Comment
  • Andrea Picchi: Programmare con Objective-C 2.0 per iOS e OS X

    27 Febbraio 2013 - 10 Comments

Author Description

7 Responses to “UIAlertView – Guida completa all’uso”

  1. 31 Marzo 2010

    Mirco

    bel tutorial davvero. soprattutto la parte della customizzazione è molto utile

    grazie

  2. 31 Marzo 2010

    Luca Auletta

    Ragazzi potete fare un tutorial sull’utilizzo dei picker? Sto preparando un app che esegue un particolare calcolo… e mi servirebbe un picker per far selezionare un valore all’utente… E mi sto scervellando!!!!

    Comunque Grandissimo sito!!!!!!!

  3. 31 Marzo 2010

    Staff devAPP

    Luca Auletta :

    Ragazzi potete fare un tutorial sull’utilizzo dei picker? Sto preparando un app che esegue un particolare calcolo… e mi servirebbe un picker per far selezionare un valore all’utente… E mi sto scervellando!!!!

    Comunque Grandissimo sito!!!!!!!

    Sicuro, per comodità posta la richiesta nell’apposita sezione del forum.. ci servirà da promemoria.. ma stai tranquillo che arriva.. ci stiamo organizzando a dovere per rispondere a tutti 😉

  4. 31 Marzo 2010

    Luca Auletta

    Fatto!!!! ed ancora complimenti

  5. 7 Agosto 2010

    Costantino

    Ciao.
    innanzitutto complimenti per il tutorial (ed il sito in generale). Ho un problema con l’utilizzo della pop-up, e spero che possiate aiutarmi a risolverlo. In una procedura leggo un valore di tipo NSString da un database. Questo valore deve essere visualizzato nella pop-up quando premo su un bottone (in definitiva, il valore è una nota per l’utente che viene visualizzata quando premo un bottone presente su una textview). Ora, La visualizzazione della pop-up si trova nella procedura che viene richiamata alla pressione del bottone, mentre il campo letto dal db si trova in un’altra procedura. Come faccio a passare questo valore come parametro “message” della UIAlertView?

    Ciao
    Costantino

  6. 20 Gennaio 2011

    armando

    ciao,
    perche l’alert a volte compare e a volte compare in ritardo??????
    il mio metodo:
    – visualizza l’alert
    – fa una chiamata http
    -elimina l’alert
    ma l’alert viene visualizzato solo una volta terminata la chiamata e per lo piu per mezzo secondo !!!! grazie anticipatamente

  7. 20 Gennaio 2011

    Guido Lodetti

    @armando: Ciao! Sovresti visualizzare l’alert, inizializzare una NSOperation o un nuovo NSThread e, una volta conclusa l’operazione, chiamare sul main thread il metodo per dimettere l’alert.

    Guido

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO