Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 按标记编辑UITableViewCell_Ios_Objective C_Uitableview_Tags - Fatal编程技术网

Ios 按标记编辑UITableViewCell

Ios 按标记编辑UITableViewCell,ios,objective-c,uitableview,tags,Ios,Objective C,Uitableview,Tags,我一直在试图找到一个简单的答案,我认为有些事情不应该那么难,但我要么找不到一个像样的答案,要么就是我的脑袋绕不过去 我正在尝试更改/编辑一个特定tableview单元格的文本标签内容。因此,出于示例的考虑,我希望在UITableView之外但在同一视图控制器中使用UIButton,以更改第2行中的文本,同时保持其他文本不变 我知道您使用了带标签的视图,但除此之外,我无法理解这一点!请帮忙 这是到目前为止我的代码 -(UITableViewCell *)tableView:(UITableView

我一直在试图找到一个简单的答案,我认为有些事情不应该那么难,但我要么找不到一个像样的答案,要么就是我的脑袋绕不过去

我正在尝试更改/编辑一个特定tableview单元格的文本标签内容。因此,出于示例的考虑,我希望在UITableView之外但在同一视图控制器中使用
UIButton
,以更改第2行中的文本,同时保持其他文本不变

我知道您使用了带标签的
视图
,但除此之外,我无法理解这一点!请帮忙

这是到目前为止我的代码

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

    EntryCell *cell = (EntryCell *)[contentTable dequeueReusableCellWithIdentifier:@"Cell"];

    cell.mainLabel.tag = indexPath.row;
    cell.mainLabel.text = @"hello";

    return cell;

}

-(void)buttonPressed:(UIButton *)button {
    cell.mainLabel = (UILabel *)[contentTable viewWithTag:2];
    cell.mainLabel.text = @"goodbye";

}

不要使用
viewWithTag
,请使用下面的获取单元格的引用

-(void)buttonPressed:(UIButton *)button 
{
    EntryCell *cell = (EntryCell *)[tblView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:2 inSection:0]];
    if(cell != nil)
    {
        cell.mainLabel.text = @"goodbye";
    }
}
编辑

正如david指出的,如果该单元格不可见,则会覆盖该值,因为当它可见时,将再次调用
cellforrowatinexpath:
。用您指定的内容覆盖此更改


在此之后,您需要更新数据模型,以便更改是永久性的

请注意,只有当从CellForRowatineXpath请求的单元格当前可见时,此操作才有效。问题不仅仅在于它将被覆盖。CellForRowatineXpath:对于当前不可见的单元格返回nil。@David啊,是的,那么编辑就开始了,数据模型应该更新为不可见的行,因为它将在
CellForRowatineXpath
中“更新”,我将添加一个nil复选框非常感谢!这太简单了。它与默认的textLabel一起工作,但我正在努力使它与我的自定义单元格文本一起工作。没错,尽管在这一点上,我的方法是更新模型,然后使用重载行使单元格无效。我讨厌在多个地方使用相同的代码:)