2012-08-07 4 views
6

Je sais que cette question a demandé à plusieurs reprises sur StackOverflow mais je ne pouvais pas en mesure de définir une alarme dans mon application parce que je suis très nouveau sur iOS? Je suivais ce tutoriel pour définir une alarme:Comment définir une alarme dans iOS?

Setting a reminder using UILocalNotification in iOS.

Cependant, il ne semble fonctionner pour moi.

Je suis dans le besoin de régler l'alarme tous les jours disons 5.00 PM tous les jours. Je ne peux pas utiliser le sélecteur de date pour choisir l'heure.

Répondre

9
  1. d'abord sur votre xib, (ou code) définir le mode sélecteur de date: Heure (valeur par défaut est la date & heure)

  2. Le système suppose que le firedate est la date et l'heure est le temps que l'utilisateur a choisi. Ce n'est pas un problème car vous définissez un intervalle de répétition pour que cela fonctionne. Je l'ai testé.

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

PS: Ce serait une bonne idée de mettre les secondes à l'aide 0NSDateComponents classe pour régler l'alarme sonner à la première seconde de la minute où vous voulez. Vous pouvez vérifier le: vous avez affichée sur

Local notifications in iOS.

tutoriel comment faire.

+0

Merci pour votre réponse, mais j'ai réussi à faire la méthode différente .. Son fonctionnement. Une question .. Est-ce possible de faire apparaître une notification personnalisée au lieu de celle par défaut et aussi ajouter un son personnalisé qui ajouté dans mon projet est-ce possible .. +1 pour votre support – GoCrazy

+2

Vous ne pouvez pas afficher la notification contextuelle personnalisée. Vous pouvez ajouter un son personnalisé, mais il doit être dans le groupe d'applications. Il est donc impossible de jouer un son que l'application a téléchargé sur Internet. Vous pouvez uniquement lire les sons du système ou les sons que vous avez importés dans votre application avant la compilation. Vous êtes le bienvenu. Veuillez accepter la réponse si vous pensez que c'est correct, afin d'aider les futurs utilisateurs à trouver la solution à ce problème. –

+0

ouais. thats ce que je cherche pourrait vous capable de poster quelques codes pour jouer le son dans le paquet d'application qui importé avant la compilation s'il vous plaît – GoCrazy

0

Vous devrez peut-être modifier le style du sélecteur de date pour permettre de modifier l'heure en plus de la date.

+0

Merci pour votre answer..Is permet d'afficher tout tutoriel pour régler l'alarme – GoCrazy

+1

Le tutoriel original s'attend à ce que vous ayez déjà de l'expérience dans cet environnement, et pour une bonne raison: dans n'importe quel tutoriel de ce niveau ou plus avancé, il y a beaucoup de choses de base que vous pourriez trébucher. Je suggère que vous vous familiarisiez avec les bases et que vous progressiez dans ce genre de tâches, sinon vous ne pourriez rien faire, le changer à votre convenance ou le réparer s'il se casse. – Jesper

+0

Merci pour votre commentaire .. en fait l'alarme est notifiée mais je n'ai pas pu obtenir la fenêtre popup .. quel sera le problème – GoCrazy

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

Appelez cette méthode avec les paramètres et utiliser cette

+ (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

Vous pouvez essayer cette

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