Ios 从两个不同的视图控制器更新表视图单元格
我是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中也
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
如果还有其他问题,请提供更多信息,具体位置;) 你现在解决这个问题了吗?答案有用吗?如果不是,请评论;如果是,请投票/接受;)
// 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];
}