从未通过performSegueWithIdentifier调用prepareForSegue

时间:2015-02-04 01:47:49

标签: ios xcode6

我正在使用带有导航控制器和两个简单​​表格视图的故事板,在iOS教程中制作一个非常基本的应用程序。

我已经使用Show segue将初始视图连接到我的第二个视图,并将其标识为“S1”。在我的初始视图的视图控制器中,我有以下代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // Perform Segue
    [self performSegueWithIdentifier:@"S1" sender:self];
}

在我的第二个视图的视图控制器中,我有以下代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"Triggered Segue");
}

但是,当我在第一个视图中选择一行时,NSLog调用永远不会发生。第二个视图打开,但它完全是空白的。

我确定我在这里遗漏了一些非常基本的东西,但我很难过。我在didSelectRowAtIndexPath中设置了一个调试点,我可以确认它正被调用。当我尝试进入performSegueWithIdentifier时没有任何反应。我的第二个视图中的prepareForSegue中的断点不会触发,但viewDidLoad中的断点不会触发。有没有新iOS开发的帮助?

1 个答案:

答案 0 :(得分:2)

performSegueWithIdentifier手动触发Segue。您有机会在prepareForSegue中设置变量等。两种方法都需要在同一个ViewController中。