我没有做任何棘手的事情。使用Apple提供的默认模板中的标准TableView Controller,我只是将Style更改为“Subtitle”。这种变化反映在故事板中,但它仍然是模拟器中的基础。
对该项目的唯一修改是: - 我在导航控制器中嵌入了导航控制器 - 我在tableview中插入了一个搜索栏和搜索显示控制器 - 我添加了一个从网站导入XML数据的对象
这个项目是一个不同项目的裸骨(剥离)版本,现在在生产中处于活动状态,但仅使用NSDictionary而不是核心数据。这个新项目是我尝试学习护理数据但是我无法解决这个棘手的问题。
我将单元格标识符从“Cell”更改为“aeJobCell”而不更新代码,应用程序仍然成功运行。它没有抱怨没有“Cell”的细胞标识符。然后我在我的代码中进行测试,以确保它使用正确的标识符,它是。标签设置正确。数据显示在单元格中但是我没有得到副标题。
我没有足够的声誉发布图片,抱歉。我将粘贴代码并尽可能地描述我所拥有的内容。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
ImportedAEJob *aeJob = nil;
if (tableView == self.searchDisplayController.searchResultsTableView) {
cell = [tableView dequeueReusableCellWithIdentifier:@"aeJobCell"];
aeJob = [self.searchResults objectAtIndex:indexPath.row];
} else {
cell = [tableView dequeueReusableCellWithIdentifier:@"aeJobCell" forIndexPath:indexPath];
aeJob = [self.fetchedResultsController objectAtIndexPath:indexPath];
}
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"aeJobCell"];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
//[self configureCell:cell atIndexPath:indexPath];
[self configureCell:cell forAEJob:aeJob];
return cell;
}
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath];
// NSString *aJobNo = [[object valueForKey:@"aeJobNo"] description];
// NSString *aDeliverTo = [[object valueForKey:@"aeDeliverTo"] description];
cell.textLabel.text = [[object valueForKey:@"aeJobNo"] description];
cell.detailTextLabel.text = [[object valueForKey:@"aeDeliverTo"] description];
}
- (void)configureCell:(UITableViewCell *)cell forAEJob:(ImportedAEJob *)aeJob
{
// NSString *aJobNo = aeJob.aeJobNo;
// NSString *aDeliverTo = aeJob.aeDeliverTo;
cell.textLabel.text = aeJob.aeJobNo;
cell.detailTextLabel.text = aeJob.aeDeliverTo;
}
我重置了内容和设置,删除了派生数据,重新启动了我的计算机,轻拍了我的肚子并揉了揉脑袋(反之亦然)。我在这个论坛上看了十多篇帖子,但没有一篇论述这个具体问题。大多数关于单元格未正确显示的帖子涉及自定义单元格,但我没有使用自定义单元格。我甚至不知道如何实际。
我已达到了解决这个问题的能力极限。请帮忙。
<----- EDIT ------->
继承了我为应用代表所做的更改,如果有帮助的话:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
UINavigationController *masterNavigationController = splitViewController.viewControllers[0];
rushMasterViewController *controller = (rushMasterViewController *)masterNavigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
} else {
UITabBarController *tabBarController = (UITabBarController *) self.window.rootViewController;
UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex: 0];
//UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
rushMasterViewController *controller = (rushMasterViewController *)navigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
}
return YES;
}
答案 0 :(得分:2)
字幕未显示的原因是因为您使用以下行注册了课程:
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"aeJobCell"];
当您使用来自故事板的单元格时,无论是UITableViewCell还是您自己的自定义类,您都不应该注册任何内容。如果单元格仅在代码中定义,那么您注册该类,如果它是在xib文件中创建的,那么您将注册该笔尖。