Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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 从两个不同的视图控制器更新表视图单元格_Ios_Objective C_Uitableview_Tableviewcell - Fatal编程技术网

Ios 从两个不同的视图控制器更新表视图单元格

Ios 从两个不同的视图控制器更新表视图单元格,ios,objective-c,uitableview,tableviewcell,Ios,Objective C,Uitableview,Tableviewcell,我是IOS新手,我刚刚开始使用UITableView。我想从两个不同的视图控制器填充表视图中的数据。我想从另一个视图控制器中更新cell.textlab.text,比如说viewController1和cell.detailtextlab.text,比如说viewController2 我在tableView的右上角有一个倒钩按钮,点击它可以导航到视图控制器a。我在视图控制器a中有一个文本标签,它会将用户输入的内容返回到tableView。 单击单元格时,它将导航到视图控制器B。视图控制器B中也

我是IOS新手,我刚刚开始使用
UITableView
。我想从两个不同的视图控制器填充表视图中的数据。我想从另一个视图控制器中更新
cell.textlab.text
,比如说
viewController1
cell.detailtextlab.text
,比如说
viewController2

我在
tableView
的右上角有一个倒钩按钮,点击它可以导航到视图控制器a。我在视图控制器a中有一个文本标签,它会将用户输入的内容返回到tableView。 单击单元格时,它将导航到视图控制器B。视图控制器B中也有一个文本标签

这是我的
tableView
datasource方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    Names *namesToDisplay = [self.lists objectAtIndex:indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = namesToDisplay.firstName;
    return cell;

}
其中,
Names
NSObject
的模型类,list是
tableView
中的
NSArray

如果我从单个视图控制器(视图控制器1或视图控制器2)更新
cell.textlab.text
cell.detailtextable.text
,则效果良好

我可以从
viewController2
获取数据,但是我应该在哪里设置
cell.detailtextlab.text

  • 编码约定。。。这是一个很好的方向

  • 这看起来像是简单的参数处理。您可以在init进程中的视图之间共享信息

  • i、 e


    如果还有其他问题,请提供更多信息,具体位置;)

    你现在解决这个问题了吗?答案有用吗?如果不是,请评论;如果是,请投票/接受;)
    // your details view (vc2) header
    @class Names;
    
    @interface MyDetailsViewController
    {
        Names *names;
        // some variable declaration here
    }
    // maybe some properties...
    
    - (id)initWithObject:(Names *)p_names;
    // ...
    
    @end
    
    // your details view (vc2) main
    - (id)initWithObject:(Names *)p_names
    {
        if ((self = [super init]))
        {
            names = p_names; // so you have the data when the tableView is loading
        }
    }
    
    // your main view (vc1)
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        Names *namesToDisplay = [self.lists objectAtIndex:indexPath.row];
        MyDetailsViewController *viewController2 = [[MyDetailsViewController alloc] initWithObject:namesToDisplay];
        [self.navigationController pushViewController:viewController2 animated:YES];
    }