2012-08-07 19 views
6

So che questa domanda ha richiesto più volte su StackOverflow ma non sono riuscito a impostare l'allarme nella mia app perché sono molto nuovo per iOS? Sto seguendo questo tutorial per impostare un allarme:Come impostare un allarme in iOS?

Setting a reminder using UILocalNotification in iOS.

Tuttavia, non sembra funzionare per me.

Sono in bisogno di impostare la sveglia ogni giorno diciamo 5.00 PM ogni giorno. Non posso usare il selettore di date per scegliere l'ora.

risposta

9
  1. prima a xib, (o il codice) impostare la modalità di selezione data: Il tempo (di default è la data & ora)

  2. Il sistema presuppone che la firedate è la data corrente, e il tempo è il tempo che l'utente ha scelto. Questo non è un problema perché si imposta un intervallo di ripetizione in modo che funzioni. L'ho provato

    UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
    [localNotif setFireDate:datePicker.date]; 
    [localNotif setRepeatInterval:NSDayCalendarUnit]; 
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
    

PS: Sarebbe una buona idea per impostare i secondi per 0 utilizzando NSDateComponents classe in modo da impostare la sveglia in modo che suoni il primo secondo del minuto che si desidera. È possibile controllare il:

Local notifications in iOS.

tutorial vi postato su come fare questo.

+0

Grazie per la tua risposta, ma sono riuscito a farlo in modo diverso .. Funziona. Una domanda .. È possibile visualizzare una notifica personalizzata anziché una predefinita e anche aggiungere un suono personalizzato aggiunto nel mio progetto ... +1 per il supporto – GoCrazy

+2

Non è possibile visualizzare popup di notifica personalizzati. È possibile aggiungere un suono personalizzato, ma dovrebbe essere nel pacchetto dell'applicazione. Quindi è impossibile riprodurre un suono scaricato dall'app da internet. Puoi solo riprodurre suoni di sistema o suoni che hai importato nella tua applicazione prima di compilare. Prego. Accetta la risposta se ritieni che sia corretta, in modo da aiutare i futuri utenti a trovare la soluzione a questo problema. –

+0

sì. questo è quello che sto cercando potresti pubblicare alcuni codici per riprodurre il suono nel pacchetto di applicazioni che è stato importato prima della compilazione per favore – GoCrazy

0

Potrebbe essere necessario modificare lo stile del selettore di data per consentire di modificare l'ora oltre alla data.

+0

Grazie per i vostri answer..Is possibile inviare qualsiasi tutorial per impostare la sveglia – GoCrazy

+1

Il tutorial originale si aspetta che tu abbia già esperienza in questo ambiente, e per una buona ragione: in qualsiasi tutorial di quel livello o più avanzato, ci sono molte cose di base su cui potresti inciampare. Ti suggerisco di rispolverare le basi e di arrivare a questo tipo di attività, altrimenti non sarai in grado di fare nulla, cambiarlo a tuo piacimento o correggerlo se si rompe. – Jesper

+0

Grazie per il tuo commento .. effettivamente l'allarme viene notificato ma non riesco a ottenere la finestra popup .. quale sarà il problema – GoCrazy

1
+ (void)addLocalNotification:(int)year:(int)month:(int)day:(int)hours:(int)minutes:(int)seconds:(NSString*)alertSoundName:(NSString*)alertBody:(NSString*)actionButtonTitle:(NSString*)notificationID 

chiamare questo metodo con i parametri e utilizzare questo

+ (void)addLocalNotification:(int)year:(int)month:(int)day:(int)hours:(int)minutes:(int)seconds:(NSString*)alertSoundName:(NSString*)alertBody:(NSString*)actionButtonTitle:(NSString*)notificationID { 
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar]; 

//set the notification date/time 
NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 
[dateComps setDay:day]; 

[dateComps setMonth:month]; 

[dateComps setYear:year]; 
[dateComps setHour:hours]; 

[dateComps setMinute:minutes]; 
[dateComps setSecond:seconds]; 

NSDate *notificationDate = [calendar dateFromComponents:dateComps]; 
[dateComps release]; 

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
if (localNotif == nil) 
    return; 
localNotif.fireDate = notificationDate; 
localNotif.timeZone = [NSTimeZone defaultTimeZone]; 

// Set notification message 
localNotif.alertBody = alertBody; 
// Title for the action button 
localNotif.alertAction = actionButtonTitle; 

localNotif.soundName = (alertSoundName == nil) ? UILocalNotificationDefaultSoundName : alertSoundName; 

//use custom sound name or default one - look here to find out more: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html%23//apple_ref/doc/uid/TP40008194-CH103-SW13 

localNotif.applicationIconBadgeNumber += 1; //increases the icon badge number 

// Custom data - we're using them to identify the notification. comes in handy, in case we want to delete a specific one later 
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:notificationID forKey:notificationID]; 
localNotif.userInfo = infoDict; 

// Schedule the notification 
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif]; 
[localNotif release]; 
} 
0

si può provare questo

UILocalNotification *todolistLocalNotification=[[UILocalNotification alloc]init]; 
[todolistLocalNotification setFireDate:[lodatepicker date]]; 
[todolistLocalNotification setAlertAction:@"Note list"]; 
[todolistLocalNotification setTimeZone:[NSTimeZone defaultTimeZone]]; 
[todolistLocalNotification setAlertBody:text_todolist]; 
[todolistLocalNotification setHasAction:YES];