因为我认为我在stackoverflow上尝试了所有可能的东西,所以我一直在撞墙。
所以目前我正在创建一个像这样的表
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
NSLog(@"CHECK IF THIS IS CALLED");
static NSString *CellIdentifer = @"CellIdentifier";
CBPeripheral *placeHolder;
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifer];
// Using a cell identifier will allow your app to reuse cells as they come and go from the screen.
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifer];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
placeHolder = _connectedPeripherals[indexPath.row];
cell.textLabel.text = placeHolder.name;
}
return cell;
}
我正在调用我调用的另一个函数[self.tableView reloadData]
。我知道它在该函数中被调用,但cellForRowAtIndexPath
不再被调用。
我在.h文件中创建了一个UITableView
属性
@property (strong, nonatomic) UITableView *tableView;
并创建了这样的表
self.tableView = [[UITableView alloc] init];
self.tableView.rowHeight = 60.0f;
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:self.tableView];
[self.view addConstraints:@[ [HTConstraints leftAlignView:self.tableView
toView:self.view
withSpacing:5],
[HTConstraints topAlignView:self.tableView
toView:self.view
withSpacing:5],
[HTConstraints rightAlignView:self.tableView
toView:self.view
withSpacing:5],
[HTConstraints bottomAlignView:self.tableView
toView:self.view
withSpacing:5],
]];
到目前为止,我尝试过确保在主线程中调用[self.tableView reloadData]
。确保我的部分没有返回0。
修改
这是我的reloadData函数,在另一个类中调用
按[[RootViewController sharedInstance] reloadData];
并在我打电话时打印日志。
- (void)reloadData {
NSLog(@"Reloading");
[self.tableView reloadData];
}
答案 0 :(得分:-1)
在内部设置断点 - (void)reloadData或尝试在NSLog中附加UITableView数据源的计数。
通常,cellForRowAtIndexPath没有被调用,因为它没有任何东西可以显示。
答案 1 :(得分:-1)
我看到,在您的代码中,您忘记将tableView
作为子视图添加到控制器中。
在tableView的初始化之后添加以下代码
[self.view addSubview:tableView];