我的问题是: 我有一个TableVC,其中我有CustomCells。 这些customCells具有各种标签,其中一个是时间标签。 解析一个xml将获取timeLabel的文本。 但是现在假设我使用静态内容,例如:下午2:45。 是否有可能将此文本作为UILocalNotification的fireDate提供,并且当然它应该在上述时间触发。 应该在点击“didSelectRowAtIndexPath”中的单元格时完成。 或者这不可能做到?
是的,如果这是一个重复的问题,你不喜欢它,或者如果有一些拼写错误或任何相关的事请不要用投票标记它。 我曾经看到人们玩这种廉价的噱头,并以不健康和不专业的方式使用他们所谓的声誉。
热烈欢迎你的相关答案。
谢谢!!!
修改 我试过这件事
NSString *str = cell.timeLabel.text;
NSLog(@"str = %@",str);
formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MM/dd/yyyy hh:mm a"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[formatter setTimeZone:gmt];
date = [formatter dateFromString:str];
上面的cellForRowAtIndexPath
和
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [NSDate dateWithTimeInterval:5 sinceDate:date];
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = @"You are notified";
localNotif.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication]scheduleLocalNotification:localNotif];
}
答案 0 :(得分:1)
NSDate *currentDate=[NSDate date];
NSString *dateStr=@"7:10 PM";
UILocalNotification *localNotification =[[UILocalNotification alloc]init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm a"];
[dateFormatter setTimeZone:gmt];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *preFix=[dateFormatter stringFromDate:currentDate];
NSString *datetoFire=[NSString stringWithFormat:@"%@ %@",preFix,dateStr];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm a"];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm a"];
NSDate *fireDate = [dateFormatter dateFromString:datetoFire];
fireDate=[fireDate dateByAddingTimeInterval:-(60*60*(5.5))];
NSLog(@"date is %@",fireDate);
// Cancel the previously scheduled notification, if any.
if (localNotification == nil) {
return;
}
localNotification = [[UILocalNotification alloc] init];
localNotification.alertBody = @"Good Morning Buddies";
localNotification.alertAction = @"View";
localNotification.fireDate = fireDate;
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.applicationIconBadgeNumber++;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];