在UITableview单元格

时间:2016-07-10 13:13:56

标签: ios objective-c uitableview

起初看起来很容易,但我的情况略有不同。我有一个带有按钮的自定义单元原型的tableview。我根据我的网络响应设置了按钮的标题。我的按钮连接到带插座的视图。现在点击按钮,我打开一个UIDatepicker,并从中选择日期。现在我必须将所选日期设置为我的按钮的标题。我正在使用一个库来进行日期选择,但是您将了解代码,因为主要问题是设置日期。我不知道该怎么做。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

KKApproveCell *cell = [tableView dequeueReusableCellWithIdentifier:@"approve" forIndexPath:indexPath];


if (self.isRDDButtonClicked == NO) {

     cell.lineItemLbl.text = [[self.dataArray objectAtIndex:indexPath.row ]validatedValueForKey:@"lineItemNumber"];

    [cell.dateBtnOutlet setTitle:[[self.dataArray objectAtIndex:indexPath.row ]validatedValueForKey:@"customerDeliveryDateAtSiteMax"] forState:UIControlStateNormal];

}
else
{

    NSLog(@"*******check date: %@, %ld",[[self.dataArray objectAtIndex:indexPath.row ]valueForKey:@"requestedDeliveryDate"],(long)indexPath.row);

    cell.lineItemLbl.text = [[self.dataArray objectAtIndex:indexPath.row ]validatedValueForKey:@"lineItemNumber"];


    [cell.dateBtnOutlet setTitle:[[self.dataArray objectAtIndex:indexPath.row ]validatedValueForKey:@"requestedDeliveryDate"] forState:UIControlStateNormal];
    }

[cell.dateBtnOutlet addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

return cell;

}

-(NSIndexPath *)getButtonIndexPath:(UIButton *)button
{
CGRect buttonFrame = [button convertRect:button.bounds toView:self.lineItemTableView];
return [self.lineItemTableView indexPathForRowAtPoint:buttonFrame.origin];
}

-(void)buttonClick:(id)sender
{
UIButton *senderButton = (UIButton *)sender;
NSLog(@"current row :%ld",(long)senderButton.tag);

//[self performSegueWithIdentifier:@"custList" sender:senderButton];

IQActionSheetPickerView *picker = [[IQActionSheetPickerView alloc] initWithTitle:@"Date Picker" delegate:self];
//[picker setTag:6];
[picker setActionSheetPickerStyle:IQActionSheetPickerStyleDatePicker];
[picker show];

}
-(void)actionSheetPickerView:(IQActionSheetPickerView *)pickerView didSelectDate:(NSDate *)date
{
    KKApproveCell *cell = [[KKApproveCell alloc]init];

        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateStyle:NSDateFormatterMediumStyle];
        [formatter setTimeStyle:NSDateFormatterNoStyle];
 [cell.dateBtnOutlet setTitle:[formatter stringFromDate:date] forState:UIControlStateNormal];      
}

1 个答案:

答案 0 :(得分:0)

在viewcontroller.h中定义名为_date的字符串

@property (strong, nonatomic) NSString *_date;

cellForRowAtIndexPath的viewcontroller.m中 检查它是否有价值

if(__date=nil||__date.length==0)
{
[cell.dateBtnOutlet setTitle:[[self.dataArray objectAtIndex:indexPath.row ]validatedValueForKey:@"customerDeliveryDateAtSiteMax"] forState:UIControlStateNormal];
}
else
{
[cell.dateBtnOutlet setTitle:__date forState:UIControlStateNormal];
}

在日期选择器方法委托集

__date=your date;
[_tableview reloaddata];