如何在uitableviewcell iOS中单击按钮时更改文本字段值

时间:2014-12-06 10:35:03

标签: ios objective-c uitableview

我正在开发一个购物应用,我正在实施一个购物车。在我的应用程序中,我需要在单击加号按钮时增加产品数量,并在单击减号按钮时减少产品数量。这里我的问题是,当我单击加号按钮时,所有文本字段值都在tableviewcell中更改。帮助我,下面是 加按钮动作方法

-(IBAction)plusBtn:(UIButton*)plus
{
    [self.tbleView beginUpdates];

    UITableViewCell *clickedCell = (UITableViewCell *)[[plus superview] superview];
    NSIndexPath *clickedButtonIndexPath = [self.tbleView indexPathForCell:clickedCell];

    plus.tag = clickedButtonIndexPath.row;
    quantity.tag = clickedButtonIndexPath.row;

    _curr =_curr+1;
    quantity.text = [NSString stringWithFormat:@"%d",_curr];

    [self.tbleView endUpdates];
    [self.tbleView reloadData];
}
像这样

enter image description here

越来越..

enter image description here

4 个答案:

答案 0 :(得分:2)

可以检查此功能吗?它对你有用。我希望如此。

- (void)viewDidLoad
{
     [super viewDidLoad];

     quantity =[NSMutableArray new];
     occu_list = [[NSArray alloc] initWithObjects:@"Occupation", @"two", @"three", @"four", @"five", @"six", @"seven", @"eight", nil];
     for(int i=0;i<[occu_list count];i++)
     {
         [quantity addObject:@"0"];
     }
     click_textView=[[UIView alloc]init];
     click_textView.frame=self.view.frame;
     [self.view addSubview:click_textView];
     [self tableviewone];
}

-(void)tableviewone
{
    tbl_view = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
    tbl_view.delegate = self;
    tbl_view.dataSource = self;
    tbl_view.backgroundColor = [UIColor whiteColor];
    tbl_view.layer.borderColor=[[UIColor orangeColor]CGColor];
    tbl_view.layer.borderWidth=2.0f;
    tbl_view.layer.cornerRadius=5.0f;
    tbl_view.layer.masksToBounds=YES;
    [click_textView addSubview:tbl_view];
}

-(IBAction)check_btn_action:(id)sender
{
    UIButton *btntag=(UIButton*)sender;

    NSLog(@"%li",(long)btntag.tag);
    NSLog(@"%@",[quantity objectAtIndex:btntag.tag]);
    int ad=[[quantity objectAtIndex:btntag.tag]integerValue];
    ad=ad+1;
   [quantity removeObjectAtIndex:btntag.tag];
   [quantity insertObject:[NSString stringWithFormat:@"%i",ad] atIndex:btntag.tag];
   [tbl_view reloadData];
}

答案 1 :(得分:1)

为你的按钮编写动作方法,然后在里面只使用这一行代码将你的值设置为文本字段: -

self.yourTxtFld.text=@"yourString"

答案 2 :(得分:1)

不要在ViewController中编写Button动作,

将它写在CustomCell类中。

示例:

CustomCell.m中的

- (IBAction)plusButtonDidClicked:(UIButton *)sender {

    int i = [self.textField.text intValue];

    i++;

    self.textField.text = [NSString stringWithFormat:@"%d", i];
}

然后回到ViewController.m

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

    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];

    return cell;
}

它会很好用。

答案 3 :(得分:0)

-(IBAction)plusBtn:(UIButton*)plus
{
   UITableViewCell *clickedCell = (UITableViewCell *)[[plus superview] superview];
   _curr=_curr+1;
   UITextField *qty = (UITextField *) [clickedCell viewWithTag:90];
   qty.text=[NSString stringWithFormat:@"%d",_curr];
}