0

我正在关注这个 ios 教程:http: //developer.apple.com/library/ios/#documentation/iPhone/Conceptual/SecondiOSAppTutorial/CustomizingDetailView/CustomizingDetailView.html#//apple_ref/doc/uid/TP40011318-CH5-SW3

我正在创建一个主场景和一个细节场景。它们都按照教程中的描述完成。

现在的问题是当我进入细节场景时,细节场景的布局没有加载。相反,加载了一个没有任何内容的主场景布局。

到目前为止,据我所知,问题与将数据从主场景传输到细节场景有关。

本教程不包括此方法:

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

没有它,应用程序无法从主场景转到细节场景。我认为 segue 方法是假设传输数据并使其进入细节场景,但由于某种原因它没有。所以这个方法被编辑为

{

    BirdSighting *sightingAtIndex = [self.dataController objectInListAtIndex:indexPath.row];

    BirdsDetailViewController *bd= [[BirdsDetailViewController alloc] init];

    bd.sighting = sightingAtIndex;

    [self.navigationController pushViewController:bd animated:YES];

}

现在应用程序可以从主场景转到细节场景,但细节场景看起来像一个没有任何东西的主场景。

非常感谢有关此或场景之间传输数据的任何帮助。先感谢您。

4

2 回答 2

0

重点是不需要实现表格视图选择方法,因为选择会自动触发segue。如果您详细遵循指南并到最后,您将配置 segue 和 segue 触发器的处理,以在新的详细视图出现在屏幕上之前对其进行配置。

于 2013-05-06T21:45:52.813 回答
0

问题似乎归结为 prepareForSegue 没有被调用,并且仅使用 didselectrowatindexpath 不能正确传输数据。

所以你可以通过在这里查看这个答案来修复它: Custom UITableViewCell not calling prepareForSegue

好像当用户触摸一个单元格时,调用了 didSelectRowAtIndex,但没有 prepareForSegue。所以你需要手动调用 performSegue 来让 prepareForSegue 工作吗?这是我的解释。

于 2013-05-07T14:23:22.673 回答