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.
我在 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.