Tableview正在加载空单元格

问题描述 投票:0回答:1

我一直在尝试通过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;
}
ios objective-c uitableview tableview
1个回答
0
投票

我看不到您的代码在viewdidLoad中将Datasource和Delegate设置为self的位置。我假设Datasource和Delegate方法与viewdidLoad在同一类中。

我另外注意到的是,您在viewDidLoad中将表初始化并定义为“ barcodeItemsTableView”,然后稍后在Datasource和Delegate方法中引用该表。就您的代码而言,这意味着表“ barcodeItemsTableView”不是该类的属性,而初始化表“ barcodeItemsTableView”仅“存在于viewDidLoad内部”,然后将再次丢弃。

您应该在视图controller.h中的表中有一个出口,或者将该表定义为属性并以编程方式显示它。

© www.soinside.com 2019 - 2024. All rights reserved.