0

ボタンアクションセットアラームで以下のメソッドを呼び出して、UISWitchの位置に応じてUILocalNotificationを設定しました。

- (void)scheduleNotificationWithInterval:(int)minutesBefore {

    NSDateFormatter* theDateFormatter = [[NSDateFormatter alloc] init];
    [theDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
    [theDateFormatter setDateFormat:@"EEEE"];
    NSString *currentDay=  [theDateFormatter stringFromDate:combo2.datePick.date];

    [[UIApplication sharedApplication] cancelAllLocalNotifications];

    UILocalNotification *localNotif = [[UILocalNotification alloc] init];
    if (localNotif == nil)
        return;
    localNotif.fireDate = [combo2.datePick.date dateByAddingTimeInterval:-30];
    localNotif.timeZone = [NSTimeZone defaultTimeZone];
    localNotif.repeatInterval=NSCalendarCalendarUnit;
    localNotif.repeatInterval = NSDayCalendarUnit;

    if (iBOfSwitchAlarm.on) {

        if([combo1.selectedText isEqualToString:currentDay])
        {

            NSLog(@"In DayCheck");
            localNotif.alertBody = @"Alarm Test";
            localNotif.alertAction = @"Ok";
            localNotif.soundName = UILocalNotificationDefaultSoundName;

            NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"THere Message for Alarm" forKey:@"Message"];
            localNotif.userInfo = infoDict;

            [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
        }
    }else{
        NSLog(@"SwOff");
    }
}

AppDelegateで次のコードを記述します。ここでもスイッチの位置を確認します。

ViewController *obj =[[ViewController alloc]init];

    NSString *itemName = [notif.userInfo objectForKey:@"Message"];

    if (obj.iBOfSwitchAlarm.on) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alarm Title" message:itemName delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"Continue", nil];
        alertView.tag = 1111;
        [alertView show];

        app.applicationIconBadgeNumber = notif.applicationIconBadgeNumber-1;
    }else{
       NSLog(@"SwitchOff");
    }

今、私の問題は、時間に応じて通知を設定するときです。時間通りに警戒を呼びかけています。しかし、スイッチをオフにしてから再びオンにすると、アラートが表示されません。スイッチの位置に応じてオンとオフの通知を行う方法はあります。誰か知っているなら助けてください。前もって感謝します。

4

2 に答える 2

4

使用できる通知をオフにするには、[[UIApplication sharedApplication] cancelAllLocalNotifications];または特定の通知をオフに[[UIApplication sharedApplication] cancelLocalNotification:<#(UILocalNotification *)#>]; するには、次のように通知を再スケジュールする必要があります

[[MKLocalNotificationsScheduler sharedInstance] scheduleNotificationOn:[[NSDate Date] addTimeInterval:60*60*24*1]
                                                                  text:@"Hi this is notification"
                                                                action:@"View"
                                                                 sound:@"Raising_Sound.mp3"
                                                           launchImage:nil
                                                               andInfo:nil];

私の場合、1日後にスケジュールを変更します

于 2012-10-24T06:52:46.880 に答える
1

一度に1つしか存在できない場合UILocalNotificationは、変数として宣言して、自由にアクセスできるようにします。

あなたがあなたを保存するならば、あなたはそれの特性をそのままに保ちながら、それをオフにすることとそれを再びオンにすること組み合わせを使うUILocalNotificationことができます。-cancelLocalNotification:-scheduleLocalNotification:

于 2012-06-09T07:45:32.670 に答える