- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath未被调用

jim*_*bob 3 uitableview ios

所以它真的很奇怪......我有一个名为ListEventsViewController的ViewController

在头文件中:

@interface ListEventsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *eventsTable;
@property (strong, nonatomic) NSArray *events;

@end
Run Code Online (Sandbox Code Playgroud)

在实现中,我将调用以下几个强制函数:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [events count];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = nil;
    cell = [eventsTable dequeueReusableCellWithIdentifier:@"eventCell"];

    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"eventCell"];
    }

    NSString *textLabelTitle = [[events objectAtIndex:indexPath.row] objectForKey:@"name"];
    NSString *textLabelDetail = [[events objectAtIndex:indexPath.row] objectForKey:@"date"];
    //cell.imageView.image = someimage;
    NSLog(@"Text Label Title: %@", textLabelTitle);
    NSLog(@"Text Label Detail: %@", textLabelDetail);
    cell.textLabel.text = textLabelTitle;
    cell.detailTextLabel.text = textLabelDetail;

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

问题是函数 - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {未被调用,因此不会填充单元格.也没有分配细胞数量.可能是什么导致了这个?

它看起来与我联系了一张h和IB的照片. 在此输入图像描述

Mic*_*lum 6

您在屏幕截图中说明了您已将表链接到其IBOutlet,但您尚未将表视图的委托或数据源链接到控制器,因此您的表委托了cellForRowAtIndex不会被调用的方法.链接这些应该可以解决您的问题.