我用一个添加单元格的按钮创建了一个表视图。我是目标C的这个领域的新手,所以我有一些问题。我也有它,所以可以点击单元格并打开detailViewController。 detailViewController中有一个选择器。我怎样才能将选择器选择设置为tableViewCell的标题?他们将是超过1个表格视图单元格,根据选择器选择必须有不同的标题,所以我需要为每个单元格制作不同的视图吗?对不起,如果这些问题很愚蠢,我就是这个领域的新手。
我一直在做我的作业并提出了一些代码,但我仍然收到错误。我有两个视图,一个是tableViewController,另一个是带有选择器的视图。我已经声明了单元格并将其标识符设置为单元格。然后我将.h文件从tableViewController导入到pickerViewController。但是当我设置标题时,我得到一个错误。设置我的标题的代码是
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
int select = row;
if (select == 0) {
cell.textLabel.text = @"Title";
} else
} 但我收到错误“使用未声明的标识符单元格”。
在tableViewController的.h文件中有UITableViewCell *cell;
.m文件有这个
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
NSDate *object = _objects[indexPath.row];
cell.textLabel.text = [object description];
return cell;
}
同样在pickerViewController的.m文件中,我有这个`#import“TableViewController.h”
我做错了吗?我应该收到此错误吗?对不起,如果这很难理解,因为我无法将问题转化为单词。
答案 0 :(得分:1)
您的方法不正确。您基本上需要以下步骤。
1)用于填充表视图的数组或字典需要具有“title”的属性(或键,如果它是字典)。您可以使用它来设置每个单元格中的标题。如果你没有设置任何标题,直到用户从选择器中选择一些东西
,它最初可以是一个空字符串2)打开详细视图控制器时,应该保留对属性中所选行的引用(在表视图控制器中)。如果你在代码中进行转换,那么这将在tableView:didSelectRowAtIndexPath:中,如果你正在使用segues,它应该在prepareForSegue:中完成。控制器还应该在这两种方法之一中将自己设置为细节控制器的委托。
3)详细控制器应该有一个委托协议,其中一个方法将标题传递回表视图控制器。用户在选择器中进行选择后,调用委托方法。表视图控制器将实现此方法并使用存储在其属性中的行信息将该标题字符串添加到数组中,然后更新表视图。
答案 1 :(得分:0)
点击您的手机时,您正在使用
- (UITableViewCell *)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
显示UIPickerView的方法,对吗?每当调用pickerViewDidSelectRow函数时,您将需要访问此选定的行/单元格,以便更改单元格的标题。有很多方法可以做到这一点。
最接近您尝试实现的方式是使用以下方法在tableViewDidSelectRowAtIndexPath方法中保存指向所选单元格的指针:
self.selectedCell = [tableView:tableView cellForRowAtIndexPath:indexPath];
为此,您需要将.h文件中“单元格”的名称更改为“selectedCell”。我建议这种变化,因为'细胞'可能会令人困惑。
然后,在pickerViewDidSelectRowInComponent中,您将设置所选单元格的标题,如下所示:
self.selectedCell.textLabel.text = @"Title";