我一直在尝试通过uiviewcontroller将tableviewcell链接到UIView中的tableview。尽管那里有tableview,但是我的自定义tableviewcell没有加载。日志显示单元已初始化并填充
这里是在UIView中已经设置tableview时在viewcontroller中使用的代码
viewcontroller.m
- (void)viewDidLoad {
[super viewDidLoad];
barcodeItems = [NSArray arrayWithObjects:@"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday", nil];
NSLog(@"%@", barcodeItems);
photoCaptureView.itemsTableView.rowHeight = 60;
photoCaptureView.itemsTableView.dataSource = self;
photoCaptureView.itemsTableView.delegate = self;
[photoCaptureView.itemsTableView registerClass:[BarcodeItemsTableViewCell class] forCellReuseIdentifier:@"BarcodeItemsCell"];
}
#pragma mark UITableViewDataSource methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return barcodeItems.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Cell Initialized");
static NSString *cellIdentifier = @"Cell";
BarcodeItemsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[BarcodeItemsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
// Configure the cell...
NSLog(@"Cell Populated");
cell.barcodeLabel.text = [barcodeItems objectAtIndex:indexPath.row];
UIImage *btnImage = [UIImage imageNamed:@"barcodeIcon"];
[cell.leftButton setImage:btnImage forState:UIControlStateNormal];
return cell;
}
我看不到您的代码在viewdidLoad中将Datasource和Delegate设置为self的位置。我假设Datasource和Delegate方法与viewdidLoad在同一类中。
我另外注意到的是,您在viewDidLoad中将表初始化并定义为“ barcodeItemsTableView”,然后稍后在Datasource和Delegate方法中引用该表。就您的代码而言,这意味着表“ barcodeItemsTableView”不是该类的属性,而初始化表“ barcodeItemsTableView”仅“存在于viewDidLoad内部”,然后将再次丢弃。
您应该在视图controller.h中的表中有一个出口,或者将该表定义为属性并以编程方式显示它。