UITableView - 未调用cellForRowAtIndexPath

Unk*_*Bit 5 objective-c uitableview ios

我知道这个标题已经足够说明了,我知道这个问题已被问过几次,但在这种情况下,我无法让它成功.

我已经使用过UITableViews并且它们都运行良好,但这一次,我甚至用其他工作副本检查了我的代码,但它无法正常工作.

所以,这是故事:

我在故事板中的一个视图控制器中有一个表视图,其中包含一个名为的自定义类ContactViewController,并且它使用名为的插座连接到代码favContactsTable

以下是.h和.m的相关部分:

ContactViewController.h

@interface ContactViewController : UIViewController <UITableViewDataSource>

// Other Stuff
   .
   .

@property (retain, nonatomic) IBOutlet UITableView *favContactsTable;

   .
   .
// Other Stuff

@end
Run Code Online (Sandbox Code Playgroud)

这里实现了UITableViewDataSource协议的功能:

ContactViewController.m

// Rest of the code
.
.
.
.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"TEST OUTPUT");

    //Test
    int a = 1; // Breakpoint
    a++;

    cell = [self.favContactsTable dequeueReusableCellWithIdentifier:@"FavContactCell"];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FavContactCell"];
    }
    cell.textLabel.text = @"FAV";
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我的视图控制器中有另一个按钮,用于重新加载此表的数据,但是当我按下它时,没有触发任何断点并且没有打印日志,也没有调用任何函数.这是该按钮的代码:

- (IBAction)refreshTables:(id)sender
{
    [self.favContactsTable reloadData];
}
Run Code Online (Sandbox Code Playgroud)

我检查了几乎所有具有动态表格视图的项目的每个部分,我无法弄清楚出了什么问题.

请不要将其他类似的问题作为重复提及,因为我已经读过它们(或者至少大部分都是这样),我确信每个部分都没有返回0行,我确信favContactsTable不是nil什么时候我发reloadData信息给它等等!

任何可能有用的想法都非常感激.

cod*_*cat 19

@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {


}
Run Code Online (Sandbox Code Playgroud)

设置代表

在此输入图像描述

拖动到您的viewcontroller图标

在此输入图像描述

检查代码中的单元格标识符是否相同

在此输入图像描述

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

    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                      reuseIdentifier:@"SimpleTableCell"];

    }
return cell;

}
Run Code Online (Sandbox Code Playgroud)