XCode Tips&Tricks #6 – Come inserire più bottoni in una UIAlertView

È da tanto tempo che non rispondevo sul blog ad una delle tante email che mi arrivano. Vista la mattinata libera ho pensato di rispondere qui a Marcello, che mi chiedeva come creare una UIAlertView con più di due bottoni.

In un precedente post vi avevo spiegato come creare una UIAlertView, oggi vi mostrerò come inserire più di due pulsanti.

È davvero molto semplice, infatti vi basta utilizzare questo codice:

Come vedete in “otherButtonTitles” abbiamo inserito più valori, che saranno appunto i bottoni che verranno visualizzati. Ricordatevi, infine, di inserire sempre il valore “nil” alla file, altrimenti non funzionerà.

Eccovi il risultato finale:

Spero che questo semplice tip possa risultare utile a qualcuno, se avete delle domande scrivetemi pure utilizzando questo form, cercherò di rispondere a tutti!

Andrea Busi | @bubidevs

Laureato in Ingegneria Informatica, ho fondato nel 2008 questo piccolo blog, in cui racconto le mie esperienze e i miei pensieri sul mondo dell'informatica. Nella vita mi occupo di sviluppo software, e nel tempo libero continuo a coltivare la mia passione per il mondo iOS.

ommenti a “XCode Tips&Tricks #6 – Come inserire più bottoni in una UIAlertView

  1. Spinoricky ha detto:

    Ma con le UIAlertView si fanno le notifiche push?

  2. Andrea Busi ha detto:

    @Spinoricky: si, sono sempre loro.. o meglio, il messaggio delle notifiche è mostrato con delle UIAlertView, ma non sono la stessa cosa..

  3. Sile ha detto:

    Una domanda tecnica : in che modo posso far visualizzare le immagini presenti su una pagina html off-line? Ho utilizzato il codice presente su diversi siti e anche sui libri, ma l’immagine non viene mai visualizzata. Ho incluso le mie immagini jpg nella cartella Resources.. ma nulla.
    Per ora l’unica soluzione che ho trovato è farla caricare direttamente dal web 😉

    NSString *file = [[NSBundle mainBundle] pathForResource:@”index” ofType:@”htm”];

    NSString *contentFile= [NSString stringWithContentsOfFile:file];

    NSURL *baseURL = [NSURL URLWithString:@”http://localhost/8888/index.htm”];

    [wevView loadHTMLString:contentFile baseURL:BaseURL];

    p.s. inoltre alla seconda linea mi da un warning : ‘stringWithContentOfFile’ is deprecated

    La pagina offline funziona lo stesso, ma senza le immagini.

  4. Fast ha detto:

    @Sile: per il file in locale, usa questa guida: http://www.bubidevs.net/2009/01/08/devtutorial-8-uiwebview-create-un-vostro-mini-browser/
    per le immagini all’interno del file html devi proprio importarle nn collegarle, altrimenti nn funzia

  5. Andrea Busi ha detto:

    @Sile: ciao, il codice che hai postato non ha molto senso xD

    se devi caricare una semplice immagine jpg perchè non utilizzi una UIImageView? Se invece insieme ci devi inserire del testo devi prima crearti un file html, che poi carichi con la guida che ti ha indicato Fast..

    se hai altri dubbi chiedi pure..

  6. Sile ha detto:

    Grazie per i vostri commenti sempre utilissimi !

    p.s. ora sembra che funzioni, ma in che modo posso inserire un URL (sempre off-line) che ha un ‘segnalibro’ (per es. index.htm#capitolo-primo ). ??? La sintassi htlm infatti fa si che si debba aggiungere un cacelletto alla fine dell’url.. ma in xcode?
    Perche utilizzando la sintassi indicata mi da errore se provo ad aggiungere il cancelletto “#” nel nome, e non lo posso neppure aggiungere nel Type “htm”….

    p.s. Sembra che ho risolto i problemi per la pubblicazione… il caos è dovuto al fatto che quando faccio BUILD ,devo assicurarmi OGNI VOLTA che il file dell’applicazione venga davvero sovrascritto BENE, perche stranamente cliccando su BUILD non viene sempre aggiornato. ..Allora devo “cancellare” il file app in debug, release e distribution ripetendo la cosa più volte finche la data ultima del file mi fa capire che è stato aggiornato, altrimenti nonostante io clicco su BUILD rimane quello vecchio e impazzisco per capire dove sta il problema..
    Beh… quì Apple poteva trovare una soluzione migliore 😉

  7. Andrea Busi ha detto:

    @Sile: per quanto riguarda i segnalibri delle pagine html non so dirti, appena riesci provo a guardarci 😉

    per la compilazione, io faccio sempre “Build and Clean”, in modo che mi elimini tutti i file che aveva creato in precedenza e ricompili tutto da capo, onde evitar errori strani 😉

  8. Francesco ha detto:

    Se sono presenti solo un tasto e il tasto di CANCEL (per esempio se costruisci gli otherButton dinamicamente) lui mette i tasti uno accanto all’altro….come si può fare per farli impilare SEMPRE, anche se sono solo due?

  9. vinz ha detto:

    ciao andrea, mi complimento ancora per le tue guide tips e tutorial sempre ottimi.
    approfitto per farti una breve domanda, se volessi assegnare una funzione ad uno dei bottoni dell’alertview tipo fargli cambiare vista, come potrei fare?

  10. Andrea Busi ha detto:

    @vinz: Devi implementare il delegate della alert, nello specifico c’è un metodo del protocollo UIAlertViewDelegate:

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { }
    
    
    Così facendo quando l'utente preme su un bottone viene richiamato questo metodo, e poi eseguirai le azioni che vuoi a seconda del bottone premuto ;)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*