我的问题是我有一个包含标签的自定义单元格。 label的值将通过webServices获取,这将在TIME中。最初如果我们通过静态数据,例如:10:54 PM,那么点击该单元格时,它应该设置我在标签上设置的值的提醒。当然,应该在上述时间通知我。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
CC *cell=(CC*)[tableView cellForRowAtIndexPath:indexPath];
NSDate *currentDate=[NSDate date];
NSString *dateStr= cell.timeLabel.text;
UILocalNotification *localNotification =[[UILocalNotification alloc]init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[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"];
NSLog(@"date is %@",[dateFormatter dateFromString:datetoFire]);
if (localNotification==nil) {
return;
}
localNotification.fireDate=[dateFormatter dateFromString:datetoFire];
localNotification.timeZone=[NSTimeZone defaultTimeZone];
localNotification.alertBody=@"Good Morning dude..!";
localNotification.repeatInterval=0; //The default value is 0, which means don't repeat.
localNotification.soundName=UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication]scheduleLocalNotification:localNotification];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CC *cell = (CC *) [tableView dequeueReusableCellWithIdentifier:@"CC"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CC" owner:self options:nil];
cell = (CC *) [nib objectAtIndex:0];
}
return cell;
}
我试过这样做,但这不起作用。
谢谢。
答案 0 :(得分:0)
获取一个动态数组,该数组将包含从webservice填充的值,并在您的单元格中动态填充填充时间。在cellForRow方法中。
我已经采用了静态数组,如下所示
time = [[NSMutableArray alloc] initWithObjects:@"5:35 PM",@"4:56 AM",@"6:00 PM",@"7:32 AM",nil];
您必须动态地将值放入此数组中,因为您将从Web服务获取填充数据。 并重新加载表。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CC *cell = (CC *) [tableView dequeueReusableCellWithIdentifier:@"CC"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CC" owner:self options:nil];
cell = (CC *) [nib objectAtIndex:0];
}
cell.textLabel.text=[time objectAtIndex:indexPath.row];
return cell;
}
并且在select方法中,将数组中的起始日期指定为
,而不是从单元格文本标签中指定NSString *dateStr=[time objectAtIndex:indexPath.row];