prepareForSegue 从未从 performSegueWithIdentifier 调用过

prepareForSegue never called from performSegueWithIdentifier

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

我已使用 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");
}

但是,当我在第一个视图中 select 一行时,NSLog 调用从未发生。第二个视图打开,但完全是空白。

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

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