【发布时间】:2013-12-07 19:21:26
【问题描述】:
在 stackOverflow 上搜索了将近一个小时后,我还是空了,所以我需要你的帮助。
我几天前在 Xcode 5 中为 iOS 7 创建了一个主从项目。
完成大型编辑后,我启动了应用程序,一切正常。然后,我通过将附件从 Checkmark 更改为 None,在情节提要中对 TableViewCell 进行了一些小改动。
当我在模拟器中再次运行应用程序时,复选标记不再存在,但单击主视图单元格不再加载详细视图。
我发现很多人在 stackOverflow 上谈论这个,但他们似乎都在尝试使用本地化。我没有接触过本地化,所以我很确定这不是我遇到的问题。
这是我尝试过但没有成功的方法:
将配件设置改回复选标记(复选标记未在模拟器中重新出现)
仔细检查“本地化锁定”是否设置为“无”
清洁代码(不知道具体是做什么的,但我试过了……)
从我的模拟器中删除并重新安装应用程序
退出并重新打开 Xcode
在项目导航器中删除对故事板的引用,重新构建并运行,然后重新添加故事板(应用程序在项目中没有故事板时运行与使用故事板时完全相同)
重新启动我的电脑
删除“Users/Library/Application Support/Iphone Simulator”中相关的 Iphone Simulator 目录,然后重新启动模拟器
这些都没有奏效!
应用的第一页出现了,但情节提要功能都不起作用(没有转场,没有复选标记)。
我一直在假设这是 Xcode 后台进程的问题,但它很可能是我的代码。
这是来自 MasterViewController.m 文件的代码(这是我在 Main.storyboard 文件之外编辑的最后一件事,我将 TableCell 附件设置为“无”):
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] init];
cell.textLabel.text = _cellStringsArray[indexPath.row];
// if (!([cell.textLabel.text isEqual: @"To Station"]||[cell.textLabel.text isEqual: @"From Station"])) {
// cell.accessoryType = UITableViewCellAccessoryCheckmark;
// }
return cell;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"preparing for segue to station selector");
if ([[segue identifier] isEqualToString:@"search"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
THStationSearchViewController *searchview = [segue destinationViewController];
searchview.stationSelection = indexPath.row;
searchview.delegate = self;
}
}
我是 Xcode 开发的超级新手,也是一般的编程菜鸟。我只是个白痴吗?我有什么明显的遗漏吗?
请拯救我和未来的人,让他们在 Xcode 厄运中遇到这个问题!我将永远感激...
【问题讨论】:
-
贴出相关代码以便我们更好地了解?您可能错过了一些小事。
-
谢谢若苏。刚刚添加了我认为最相关的代码部分。让我知道代码中是否还有其他有用的部分。
-
你为什么使用
[[UITableViewCell alloc] init]而不是-dequeueReusableCellWithIdentifier:forIndexPath:? -
谢谢杰弗里!!这就是我的代码不起作用的原因...我采用了 dequeueReusableCellWithIdentifier:forIndexPath: 因为我知道我最多只能在该 TableView 中创建 2 个单元格。如果您没有多个 View 的单元格,任何人都可以解释为什么需要将可重复使用的单元格出列?