【发布时间】:2015-01-18 03:45:50
【问题描述】:
我正在尝试将数据传递给自定义 UITableViewCell,但变量(例如 studentId)始终为空。有人可以帮忙指出我做错了什么吗?
CustomCell.h:
#import <UIKit/UIKit.h>
@interface CustomCell : UITableViewCell { }
@property (strong, nonatomic) NSNumber *studentId;
- (id)initWithStudentId:(NSNumber *)newStudentId;
@end
CustomCell.m:
#import "CustomCell.h"
@interface CustomCell ()
@end
@implementation CustomCell { }
@synthesize studentId = _studentId;
- (id)initWithStudentId:(NSNumber *)newStudentId {
if (self = [super init]) {
_studentId = newStudentId;
}
return self;
}
StudentTable.m:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSNumber *myStudentId = @5;
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"studentCell"];
if(cell == nil){
cell = [[CustomCell alloc] initWithStudentId:myStudentId;
}
return cell;
}
【问题讨论】:
-
在你
cellForRowAtIndexPath上测试myStudentId的值。你是怎么定义myStudentId的? -
我在我的 appDelegate 中设置了它,我已经检查过了,它有一个可以使用的值。我已经硬编码 myStudentId 用于演示目的,它仍然没有将它传递给我的 CustomCell init。
-
您是否在情节提要中定义了表格视图单元格? (例如,界面构建器中的原型单元,具有重用标识符 studentCell)
-
我没有。我希望以编程方式完成这一切,这可能吗?
-
内特,你真是个天才!我不完全理解 dequeueReusableCellWithIdentifier 做了什么,但现在这很有意义。我现在正在我的 CustomCell 中初始化值。谢谢,您应该将其发布为答案
标签: xcode uitableview