我有这个代码来填充UITableView,返回numberOfRowsInSection的工作正常。不调用在cellForRowAtIndexPath部分中使用appDelegate的选择器。这有什么不对吗?
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
VIP_GeburtstagAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate getEntriesForDate:section];
return appDelegate.namesForDay.count;
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
VIP_GeburtstagAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate getEntriesForDate:indexPath.section];
答案 0 :(得分:6)
调用方法。选择器是(或多或少)方法的名称;他们没有被召唤。
如果-tableView:numberOfRowsInSection:
返回0,则表示没有单元格,因此不会调用-tableView:cellForRowAtIndexPath:
。
答案 1 :(得分:1)
也许该部分表尚未显示,而UITableView正在懒散加载。如果是这样,向上滚动以便这些单元格可见,并且应该调用您的委托。
答案 2 :(得分:0)
tableView:numberOfRowsInSection:返回366或类似,因此tableView:cellForRowAtIndexPath:被调用。当我将cell.textLabel.text交换到@“John Doe”时,它的工作正常。