从另一个方法iOS更新UITableViewCell中的值

时间:2015-09-08 11:16:27

标签: ios objective-c uitableview tableviewcell

我有一个名为

的方法
- (void)redeemOfferService
{
  // in this method i want access OffersBoughtCellTableViewCell,
      how to access tableview cell here ?
  // want to update selected tableview cell values
  // here i am getting selected cell details in selectedOfferBoughtObj which 
     is actually NSObject in that i am having five string values  
     i want show that values in my tableview cell how can i ?
  //

}

上述方法是从

调用
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex: (NSInteger)buttonIndex 
{
    if(alertView.tag == 10)
    {
       if(buttonIndex == 0)
       {
        [self redeemOfferService];
       }
    }
}

当我点击tableview小区时,这个方法正在调用,即

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIAlertView *logoutAlert = [[UIAlertView alloc]initWithTitle:@"Are you sure you want to redeem?" message:nil delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No", nil];
    logoutAlert.tag  = 10;
    [logoutAlert show];
}

我知道有办法,我们可以从按钮点击发送发件人,但我想在上面的场景。

3 个答案:

答案 0 :(得分:1)

您肯定会从某些NSMutableArray更新tableview,这意味着您正在使用此数组填充您的tableview。

redeemOfferService方法中,更改要填充tableview的NSMutableArray内的该对象的值。 然后拨打[self.tableviewName reloadData]

答案 1 :(得分:1)

在类 NSIndexPath 类型中使用全局变量,并在选定的存储上使用您选择的索引路径

NSIndexPath *selectedIndexPath; //declare it as a global

在didSelect中指定选定的值

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
UIAlertView *logoutAlert = [[UIAlertView alloc]initWithTitle:@"Are you sure you want to redeem?" message:nil delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No", nil];
logoutAlert.tag  = 10;
[logoutAlert show];
selectedIndexPath = indexPath;
}

在你的功能中改变如下

    - (void)redeemOfferService
{
     OffersBoughtCellTableViewCell * _selectedCell = [offersTableView cellForRowAtIndexPath:selectedIndexPath]; //Now Its your selected cell Try this . 

}

尝试一次并恢复原状

答案 2 :(得分:0)

您可以使用indexPathForSelectedRow的{​​{1}}属性访问所选的indexPath。

UITableView

这会为您提供所选的- (void)redeemOfferService { OffersBoughtCellTableViewCell *selectedCell = (OffersBoughtCellTableViewCell *)[tableViewObject cellForRowAtIndexPath:offersTableView.indexPathForSelectedRow]; }