我有一个包含两个 UITableView 的 UIView,它们在使用 UIView 导航栏中的分段控件之间切换。
第一个表(成分)仅使用标准单元格,并且工作正常。
第二个表(食谱)使用从笔尖加载的自定义单元格。问题是,当应用程序启动并且配方表最后可见(来自状态保存)时,当视图出现时,单元格使用标准单元格呈现。如果用户循环提到的分段控件,它们会在返回到配方表时按预期显示。
视图控制器中的相关部分tableView:cellForRowAtIndexPath:
:
// Check that we are displaying the right table
if (tableView == self.recipesTable) {
static NSString *recipeCellIdentifier = @"RecipeCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:recipeCellIdentifier];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"RecipeCell" owner:self options:nil];
if(nib.count > 0)
{
cell = self.customCell;
}
else
{
NSLog(@"Failed to load CustomCell nib file!");
}
}
// Set a number of properties of the custom cell
// ...
return cell;
self.customCell
是一个 IBOutlet UITableViewCell,它使用 File 的所有者绑定到实际 nib 文件中的单元格(nib 仅包含 UITableViewCell)。
对我来说,这表明笔尖没有及时加载,即直到视图首次出现之后。
我曾尝试将笔尖加载移动到该viewDidLoad
方法,以及在结束时强制reloadData
和但无济于事。setNeedsDisplay
viewWillAppear:
令我困惑的是,只要带有自定义单元格的表格最初不可见,但在启动后切换到,它就可以正常工作。