0

我有一个自定义视图 EMViewController,其中一个表视图作为子视图。我希望 EMViewController 兼作子视图的控制器,因此我将其设置为委托和数据源。

// EMViewController.h
@interface EMViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
...
// EMViewController.m
- (void)viewDidLoad {
    [super viewDidLoad];
    self.eTableView.delegate = self;
    self.eTableView.dataSource = self;
}

我正在使用来自 Facebook 的异步数组/字典填充数据,所以一旦我有了数据,我就运行

[self.eTableView reloadData]

对于 UITableViewDataSource 协议方法,我实现了以下内容:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    NSLog(@"returns sections 0"); // This appears in my log
    return 0;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSLog(@"returning count %d", [self.eList count]); // never shows up
    return [self.eList count];
}

- (EMTableViewCell *)tableView:(EMTableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // configure the cell
    NSLog(@"index: %d", indexPath); // never shows up
    ...
}

到目前为止,我已经尝试过:

  • 确保我的故事板已连接
  • 检查/重新检查在 viewDidLoad 中设置的委托/数据源
  • 完全重新启动/清理构建我的应用程序以防万一
  • 创建一个占位符 UIView 子类(虽然我没有太大变化)
  • 为我的自定义布局(图像,3 个标签)创建一个带有插座的 customUITableViewCell 类
  • 测试对 tableView 出口的强/弱引用

任何意见,将不胜感激。我认为我的问题类似于这个问题,除了我试图将 tableview 添加为子视图。我的最终目标是使用包含图像和三个标签的自定义格式填充单元格。谢谢!

4

1 回答 1

2

返回 1 个部分而不是返回 0 个部分

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
于 2013-01-17T02:09:02.077 回答