我遇到了與我的應用程序有關的問題,特別是與UITableView
及其UITableViewCells
。問題出在這裏:我在UIView
內創建了一個UITableView
,並自定義了UITableViewCell
。我已經涉及到兩個控制器:IOS5 - 自定義UITableViewCell不顯示內容
- ListController.m
- ListCellController.m
在IB,我聯繫了小區的項目我的頭文件中手動創建IBOutlets單元控制器。
下面是該ListCellController.h/M代碼:
// .h
@class Item;
@interface ListCellController : UITableViewCell
@property (nonatomic, strong) Item *item;
@property (nonatomic, strong) IBOutlet UILabel *itemName;
@property (nonatomic, strong) IBOutlet UILabel *dates;
@property (nonatomic, strong) IBOutlet UILabel *itemId;
@end
// .m
// @synthetize stuff
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (!self) {
return nil;
}
self.textLabel.adjustsFontSizeToFitWidth = YES;
self.selectionStyle = UITableViewCellSelectionStyleGray;
return self;
}
- (void)setItem:(Item *)item
{
_item = item;
self.itemName.text = _list.itemName;
self.itemId.text = _list.itemId;
self.dates.text = [NSString stringWithFormat:@"Du %@ au %@", _list.date, _list.date];
}
而這裏的ListController.h/M代碼:
// .h
@interface ListController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
UITableView *cellList;
}
@property (strong, nonatomic) IBOutlet UITableView *cellList;
@end
// .m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [_list count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"List cell";
ListCellController *cell = [cellList dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[ListCellController alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.item = [_items objectAtIndex:indexPath.row];
cell.itemId.text = cell.item.itemId;
cell.itemName.text = cell.item.itemName;
cell.dates.text = [NSString stringWithFormat:@"From %@ to %@", cell.item.date, cell.item.date];
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[cellList deselectRowAtIndexPath:indexPath animated:YES];
}
我的問題是,當我啓動應用程序,我沒有看到我的細胞。沒有內容,沒有錯誤,沒有任何東西,空白單元格。
只要提一下,我也在這裏使用故事板。
有沒有人遇到過這個問題?我怎麼能解決它?
謝謝。
你鏈接的IB委託和數據源?我沒有看到你在代碼中設置委託。 – Eric 2012-07-11 17:40:59
我只在IB中設置dataSource。看來我沒有對代表做任何事情。但是我對IOS開發很陌生,在這種情況下我不知道該鏈接什麼...... – 2012-07-11 17:53:34
無論哪個頭類包含您的tableView Outlet也需要委託集,與數據源的方式相同。 – Eric 2012-07-11 17:57:42