如何在单元格中显示变量

时间:2015-01-11 20:13:07

标签: ios objective-c uitableview

我试图获取一个表视图来显示数组中的数据。

错误说

  

使用无法识别的标识符tableItems

这是tvc的实现文件:

@interface IDTVC ()
@property NSMutableArray *tableItems;

@end

@implementation IDTVC
-(void)loadInitialData {
    IDModel *item1 = [[IDModel alloc] init];
    item1.name = @"Hamburger";
    item1.sub = @"test";
    //identify image here
    item1.pic =@"pic.png";
    [self.tableItems addObject:item1];
    IDModel *item2 = [[IDModel alloc] init];
    item2.name = @"Cheeseburger";
    item2.sub = @"test";
    item2.pic =@"pic.png";
    [self.tableItems addObject:item2];
    IDModel *item3 = [[IDModel alloc] init];
    item3.name = @"Hot Dog";
    item3.sub = @"test";
    item3.pic =@"pic.png";
    [self.tableItems addObject:item3];
}


- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableItems = [[NSMutableArray alloc] init];
    [self loadInitialData];
 }

static NSString *protoCell = @"Cell";
- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:protoCell forIndexPath:indexPath];
// Configure the cell...

//RED ERROR IN FOLLOWING LINE
    cell.textLabel.text = [tableItems.name objectAtIndex:indexPath.row];    
    //    cell.textLabel.text = @"head";
      cell.detailTextLabel.text = @"sub";

    return cell;
}

tableItems数组中获取名称并将其分配给labelText的适当语法是什么?

感谢任何建议。

2 个答案:

答案 0 :(得分:1)

应为_tableItemsself.tableItems。您在其他方法中使用它是正确的,但在UITableView委托方法中却没有。此外,如果启用了ARC,请将tableItems属性strong设为:

@property (nonatomic, strong) NSMutableArray *tableItems;

答案 1 :(得分:0)

创建一个子类' MyCustomCell'对于UITableViewCell并在那里添加属性。

你的.h文件中的

@interface MyCustomCell : UITableViewCell

@property (strong, nonatomic) UILabel *myTitle;
@property (strong, nonatomic) UILabel *detailTitle;

@end
你的.m文件中的

-(id)initWithCoder:(NSCoder *)aDecoder
{
    if(self = [super initWithCoder:aDecoder]) {

        _myTitle = [[UILabel alloc] init];
        _detailTitle = [[UILabel alloc] init];

        [self.contentView addSubview:_myTitle];
        [self.contentView addSubview:_detailTitle];

    }

    return self;
}
在您的UITableViewController中

添加导入自定义子类

在UITableViewController

中为您的名字和子创建NSString属性
#import "MyCustomCell"

@property(强,非原子)NSString * name;

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


    static NSString *requestCell = @"myCell";

    MyCustomCell *cell;


    cell = [tableView dequeueReusableCellWithIdentifier:requestCell forIndexPath:indexPath];

    cell.myTitle.frame = CGRectMake(105, 0, self.view.frame.size.width - 155, 50);
    cell.detailTitle.frame = CGRectMake(105, 50, self.view.frame.size.width - 110, 15);

    cell.myTitle.text = _tableItems.name;
    cell.detailTitle.text = _tableItems.sub;  

    return cell;
}

***未经测试