Ios 未执行prepareforsgue

Ios 未执行prepareforsgue,ios,objective-c,Ios,Objective C,我有一个带有嵌入式导航控制器(导航控制器指向我的主视图控制器)的故事板(xcode5) 我已经为一个新的视图控制器创建了一个segue名称,我想通过代码打开它 [[self navigationController] performSegueWithIdentifier:@"segueTo" sender:self]; - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog(@"Se

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

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

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


- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     NSLog(@"Segue");
}
视图控制器确实打开了,但prepareForSegue永远不会运行,为什么

我试过了

[self performSegueWithIdentifier:@"segueTo" sender:self];
但是我得到一个运行时错误,说它找不到segue名称。

替换这一行:

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

它应该会有帮助。

替换此行:

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


它应该会有所帮助。

您尝试执行的序列必须从
视图控制器1
(嵌入导航控制器)链接到
新视图控制器
。在情节提要中,确保已将连接segue命名为“segueTo”。然后在
视图控制器1
中,调用:

[self performSegueWithIdentifier:@"segueTo" sender:self];
而不是:

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

这应该可以解决您的问题。

您尝试执行的序列必须从
viewcontroller1
(嵌入导航控制器)链接到
newviewcontroller
。在情节提要中,确保已将连接segue命名为“segueTo”。然后在
视图控制器1
中,调用:

[self performSegueWithIdentifier:@"segueTo" sender:self];
而不是:

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

这应该可以解决您的问题。

您是否确实在interface builder中设置了segue的名称?是的,但设置错误。我从导航控制器而不是主视图控制器建立了连接。现在,当我从主视图控制器进行模式连接时,它可以工作:)谢谢你真的在interface builder中设置了segue的名称吗?是的,我设置了,但错误了。我从导航控制器而不是主视图控制器建立了连接。现在,当我从主视图控制器建立模式连接时,它可以工作:)感谢这可以工作,但是我必须从主视图控制器和新视图控制器建立正确的连接。我是从导航控制器开始的,这是错误的。是的,这是可行的,但我必须从主视图控制器和新视图控制器建立正确的连接。我是从导航控制器开始做的,这是错误的。