起初看起来很容易,但我的情况略有不同。我有一个带有按钮的自定义单元原型的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];
}
答案 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];