主细节场景,细节场景不能正确加载

时间:2013-05-06 21:12:47

标签: objective-c uitableview segue master-detail

我正在关注这个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];

}

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

非常感谢有关此事项或在场景之间传输数据的任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:0)

关键是表格视图选择方法不需要实现,因为选择会自动触发segue。如果您详细地按照指南进行操作,您将配置segue和segue触发器的处理,以便在屏幕上显示之前配置新的详细信息视图。

答案 1 :(得分:0)

问题似乎归结为prepareForSegue没有被调用,只是使用didselectrowatindexpath没有正确传输数据。

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

似乎当用户触摸一个单元格时,调用didSelectRowAtIndex,但prepareForSegue不是。那么你需要手动调用performSegue for prepareForSegue才能工作吗?这是我的解释。