2016-03-29 7 views
0

Ich habe eine Verpflichtung unten,Wie in ios eine Erinnerung vor zwei Wochen nach dem ausgewählten Datum einzustellen

  1. Zuerst muß Datum.
  2. Dann App müssen die Erinnerung Optionen wie zeigen (2 Wochen vor, 1 Woche vor, 3 Tage vor usw.)
  3. Wenn das ausgewählte Datum ist zwei Tage ab dann muss ich die 2 Wochen vorher deaktivieren und 1 Woche vor der Option.

unten ist der Code verwende aber nicht funktioniert,

- (IBAction)timePicker:(id)sender { 

selectedTimeRow = [sender tag]; 


NSDate *date2=[NSDate date]; 


NSDate *DaysAgo; 

if (selectedTimeRow==0) { 
    DaysAgo = [date2 dateByAddingTimeInterval:14*24*60*60]; 
    NSLog(@"14 days ago: %@", DaysAgo); 

}else if (selectedTimeRow==1){ 
    DaysAgo = [date2 dateByAddingTimeInterval:7*24*60*60]; 
    NSLog(@"7 days ago: %@", DaysAgo); 

}else if (selectedTimeRow==2){ 
    DaysAgo = [date2 dateByAddingTimeInterval:3*24*60*60]; 
    NSLog(@"3 days ago: %@", DaysAgo); 

}else if (selectedTimeRow==3){ 
    DaysAgo = [date2 dateByAddingTimeInterval:1*24*60*60]; 
    NSLog(@"1 days ago: %@", DaysAgo); 

} 



NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
format.dateFormat = @"dd/MM/yyyy"; 
NSString *dateNew=[format stringFromDate:DaysAgo]; 

UIButton *button = (UIButton *)sender; 
UITableViewCell *cell = (UITableViewCell*)[button superview]; 

//

NSComparisonResult result = [dateNew compare:_SavedDate]; 
if(result == NSOrderedAscending) 
{ 
    NSLog(@"date1 is later than date2"); 
    cell.userInteractionEnabled=NO; 


}else if (result == NSOrderedDescending) { 
    NSLog(@"date1 is earlier than date2"); 

     [self calltoolrBar]; 
    cell.userInteractionEnabled=YES; 
} 
else 
{ 
    NSLog(@"date1 is equal to date2"); 
    [self calltoolrBar]; 
    cell.userInteractionEnabled=YES; 
     } 
} 

Antwort

-1
  1. 2 Wochen Erhalten Sie vor Datum

    NSDate * selecteDate = YOUR_DATE; NSDate * twoWeeksAgoDate = [selecteDate dateByAddingTimeInterval: -14 * 24 * 60 * 60]; // -14 ist 14 Tage (2 Wochen) vorher. Sie müssen nach Ihrem Wunsch ändern. NSLog (@ "Vor zwei Wochen:% @", twoweeksAgoDate);

  2. Set lokale Benachrichtigung für twoWeeksAgo Datum

    UILocalNotification * Benachrichtigung = [[UILocalNotification alloc] init]; notification.repeatInterval = NSDayCalendarUnit; [Benachrichtigung setAlertBody: @ "Ihre Erinnerung"]; [Benachrichtigung setFireDate: twoWeeksAgoDate]; [Benachrichtigung setTimeZone: [NSTimeZone defaultTimeZone]]; [Anwendung setScheduledLocalNotifications: [NSArray arrayWithObject: Benachrichtigung]];

Verwandte Themen