prepareForSegue未执行

时间:2013-12-08 13:56:10

标签: ios objective-c

我有一个带有嵌入式导航控制器的故事板(xcode5)(导航控制器指向我的主视图控制器)。

我已经为新的视图控制器创建了一个segue名称,我希望通过我的代码打开它。

[[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self];


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

视图控制器确实打开但是prepareForSegue永远不会运行,为什么?

我试过

[self performSegueWithIdentifier:@"segueTo" sender:self];

然后我收到运行时错误,说它无法找到segue名称。

2 个答案:

答案 0 :(得分:1)

认为您要尝试执行必须从viewcontroller1(嵌入在导航控制器中)链接到newviewcontroller。在故事板中,确保将连接segue命名为“segueTo”。然后在viewcontroller1中,致电:

[self performSegueWithIdentifier:@"segueTo" sender:self];

而不是:

[[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self];

这可以解决您的问题。

答案 1 :(得分:0)

替换此行:

[[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self];

[self performSegueWithIdentifier:@"segueTo" sender:self];

应该有所帮助。