【发布时间】:2015-02-04 01:47:48
【问题描述】:
我在 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 开发者有帮助吗?
【问题讨论】:
-
segue 的准备应该在我认为的第一个视图控制器中
-
yes 将 prepareForSegue 移动到具有 performSegueWithIdentifier 的同一视图控制器