根据Label的Text / Value调用UILocalNotification

时间:2013-07-12 09:21:26

标签: ios uilocalnotification custom-cell

我的问题是: 我有一个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];

}

1 个答案:

答案 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];