在Xcode 5.1中,使用StoryBoards,我无法获得自定义UITableViewCell来显示它的内容。单元格出现 - 我可以点击选择它 - 但标签文本不会出现。
我已经给Cell我的自定义类GCell和标识符MyCell
我已将IBOutlets连接到原型单元格中的标签。
#import <UIKit/UIKit.h>
@interface GCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UILabel *nameLabel;
@end
在我的扩展UITableViewController的类中,我有
@implementation PayGroupViewController
- (id)initWithStyle:(UITableViewStyle)style
{
NSLog (@"[PayGroupViewController] initWithStyle");
self = [super initWithStyle:style];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.delegate = self;
self.tableView.dataSource = self;
// [self.tableView registerClass:[GCell class] forCellReuseIdentifier:@"MyCell"];
_groups = [NSMutableArray arrayWithCapacity:20];
GroupModel *gm = [[GroupModel alloc] init];
gm.title = @"DINNER";
gm.names = [NSMutableArray arrayWithCapacity:10];
[gm.names addObject:@"Me"];
[gm.names addObject:@"Albert"];
[_groups addObject:gm];
NSLog (@"[PayGroupViewController] viewDidLoad. [self groups].count:%d" ,[self groups].count);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog (@"[PayGroupViewController] tableView. [self groups].count:%d" ,[self groups].count);
return [self groups].count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog (@"[PayGroupViewController] tableView cellForRowAtIndexPath");
GCell *c = (GCell *)[tableView dequeueReusableCellWithIdentifier:@"MyCell" forIndexPath:indexPath];
GroupModel *group = [self.groups objectAtIndex:indexPath.row];
NSLog (@"[PayGroupViewController] group.title: %@",group.title); // Outputs "DINNER"
c.nameLabel.text = group.title; // It does not show up
NSLog (@"[PayGroupViewController] cell: %@",c); // outputs <GCell: 0x9976ed0, etc. so it does exist
NSLog (@"[PayGroupViewController] cell.nameLabel: %@",c.nameLabel); // outputs (null)
return c;
}
此外,如果有人关心的话,这里是整个xCode项目。
http://www.brainjelly.com/WhoPaid.zip
请注意,原型单元格有一个Disclosure Indicator Accessory,但也不会出现。
谢谢......我已经在这个问题上广泛关注其他帖子,但这些解决方案都没有帮助我。
答案 0 :(得分:2)
您的xCode项目有两个问题。
在这些之后,清除项目并重新编译,应该没问题。