uitableview对象数组作为数据源

时间:2014-05-30 06:30:25

标签: ios objective-c uitableview object nsmutablearray

我在ios xcode项目的故事板中有一个UITableView,

我还在menuitem中存储了itemarray个对象数组:

NSMutableArray *itemarray;

这是我的menuitem.h文件

#import <Foundation/Foundation.h>
@interface menuitem : NSObject
@property (nonatomic) NSString *itemtitle;
@property (nonatomic) NSString  *itemdesc;
@property (nonatomic) int itemid;
@property (nonatomic) int itemprice;
@property (nonatomic) NSString  *itemcat;
@end

这是我的tableviewcell.m文件:

#import "tableviewcell.h"
#import "menuitem.h"
@interface tableviewcell ()
@property (nonatomic, weak) IBOutlet UILabel *titleLabel;
@property (nonatomic, weak) IBOutlet UILabel *descLabel;
@property (nonatomic, weak) IBOutlet UILabel *priceLabel;


@end

@implementation tableviewcell
-(void)configureWithmenuitem:(menuitem *)item{
    NSLog(@"hello");

    self.titleLabel.text = item.itemtitle;
    self.descLabel.text = item.itemdesc;

    self.priceLabel.text = [NSString stringWithFormat:@"%.1d", item.itemprice];
}

@end

我想从itemtitle的每个实例中将itemdescitempricemenuitem分别放到每个tableviewcell s上的3个标签

1 个答案:

答案 0 :(得分:1)

您的tableviewcell是一个视图,因此它应该只知道如何显示自己而不是显示什么。控制器的作用(通过委托tableView:cellForRowAtIndexPath:方法)告诉视图要显示的内容。

因此你应该做类似的事情:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Id"];

      //Assuming you've stored your items in an array.
      Item *item = [items objectAtIndex:indexPath.row];

      cell.titleLabel.text = item.itemTitle;
      cell.descLabel.text = item.itemdesc;
      cell.priceLabel.text = [NSString stringWithFormat:@"%.1d", item.itemprice];
      return cell;
}

^上面的代码假设您有一个原型单元格。如果不这样做,则在出列后,如果单元格为零,则必须分配。