我有一个自定义视图 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 添加为子视图。我的最终目标是使用包含图像和三个标签的自定义格式填充单元格。谢谢!