2014-11-06 40 views
0

我创建了一个具有一些属性的类。在故事板中我有一个tableview控制器。我想将数据从类传递给tableview。在每个细胞中我都有一些标签。我想填充数据,但我没有成功与阵列。你能帮我么。NSObject数据到UITableViewCell

所以我有一个城市类与一些属性为前。 property1,property2,这是标签

#import <Foundation/Foundation.h> 

@interface DACityObject : NSObject { 

    NSNumber *ID; 
    NSString *name; 
    NSNumber *temperature; 
    NSNumber *minimumTemperature; 
    NSNumber *maximumTemperature; 
    NSString *iconName; 
} 

@property (strong,nonatomic) NSNumber *ID; 
@property (strong,nonatomic) NSString *name; 
@property (strong,nonatomic) NSNumber *temperature; 
@property (strong,nonatomic) NSNumber *minimumTemperature; 
@property (strong,nonatomic) NSNumber *maximumTemperature; 
@property (strong,nonatomic) NSString *iconName; 

@end 

和.m文件

#import "DACityObject.h" 

@implementation DACityObject 

@synthesize ID,name,temperature,minimumTemperature,maximumTemperature,iconName; 



@end 

DACityCell.h

#import <UIKit/UIKit.h> 


@interface DACityCell : UITableViewCell 


@property (strong, nonatomic) IBOutlet UILabel *name; 
@property (strong, nonatomic) IBOutlet UILabel *temperature; 
@property (strong, nonatomic) IBOutlet UILabel *minimumTemperature; 
@property (strong, nonatomic) IBOutlet UILabel *maximumTemperature; 
@property (strong, nonatomic) IBOutlet UIImageView *iconName; 


@end 

DACityCell.m

#import "DACityCell.h" 

@implementation DACityCell 
@synthesize name,temperature,minimumTemperature,maximumTemperature,iconName; 

- (void)awakeFromNib { 


} 


- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
    } 
    return self; 
} 

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    self.imageView.frame = CGRectMake(0,45,75,75); 
} 



@end 

我怎样才能创建例如3个城市的数据并将其放入选项卡中在我的MainController中查看?

+0

为什么在这两个类中复制这些属性?更好的做法是将'DACityObject'传递给单元格,并说“在这里使用这些数据”。 – trojanfoe 2014-11-06 14:29:50

+0

可以请你给我更清楚的答案,因为我是新手:) – WinBoze 2014-11-06 14:31:47

回答

4

比方说,你已经通过类对象DACityObject创建了3个数据,你现在要做的就是将它们放置在一个数组说dataArray中(NSMutableArray),并呼吁他们在具有UITableView在类中的方法cellForRowAtIndexPath ,然后调用你自定义的tableview单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *cellIdentifier = @"CellIdentifier"; 

    // extract data here 
    DACityObject *dataObject = [dataArray objectAtIndex:indexPath.row]; 

    DACityCell *cell = (DACityCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if (cell == nil) 
    { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DACityCell" owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 
    } 

    cell.name.text = dataObject.name; 
    cell.temperature.text = dataObject.temperature; 
    . 
    . 
    .... etc. 

    return cell; 
}