У меня есть UIView, который содержит UITableView. делегируют Tableview установлен в моей UIView, но он никогда не называет методы делегата:UITableView делегат и методы dataSource не получаются вызываемые
-(id)init {
self = [super init];
if (self) {
self.tableView = [[UITableView alloc] initWithFrame:self.bounds];
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.tableView.scrollEnabled = NO;
self.tableView.layer.cornerRadius = PanelCornerRadius;
[self addSubview:self.tableView];
}
return self;
}
#pragma mark - UITableViewDelegate methods
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"height for row");
int height = [self heightForRowAtIndexPath:indexPath];
return height;
}
#pragma mark - UITableViewDataSource methods
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"number of rows");
if (self.manager.fetchOperation.dataFetchProblem) {
return 1;
}
int numberOfRows = [self.delegate numberOfSectionsInPanel:self];
return numberOfRows;
}
Я исследовал каждый вариант я могу думать, но не могу показаться, чтобы найти корень проблемы.
EDIT: Включено числоOfRowsInSection. Он потенциально может вернуть 0, только он никогда не получает такой шанс, потому что «количество строк» NSLog никогда не будет вызвано.
Что вы возвращаете из m 'numberOfRowsInSection:'? – Lance
Кроме того, если это в UIView, как вы сказали, вы должны поместить код, который находится в 'init',' awakeFromNib' – Lance
@Lance У меня также есть NSLog - он не вызван. Я редактировал мой пост выше. – Andrew