3

我有一个项目,它有一个视图控制器作为初始屏幕,然后是一个嵌入在导航视图控制器中的视图控制器。我在第一个屏幕上还有一个按钮,我希望打开导航控制器屏幕。

我单击按钮,然后单击“连接检查器”,我将推送事件添加到该导航控制器,但没有发生 segue。请问我怎样才能实现它?

解决方案

最后经过一番研究,我设法让这件事发挥作用。这是我正在使用的代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"Source Controller = %@", [segue sourceViewController]);
    NSLog(@"Destination Controller = %@", [segue destinationViewController]);
    NSLog(@"Segue Identifier = %@", [segue identifier]);
    
    if ([segue.identifier isEqualToString:@"mysegue"])
    {
        NSLog(@"coming here");
        
     SecondViewController *loginViewController = (SecondViewController *)segue.destinationViewController;
        
       //SecondViewController *navigationController = [[UINavigationController alloc]init];
        
        [self presentModalViewController:loginViewController animated:YES];
        
        
    }
    
}
4

1 回答 1

0

您确定导航控制器与嵌入式视图控制器的连接设置正确吗?第一个视图控制器应该连接到导航控制器,带有Push样式segue,导航控制器应该连接到第二个视图控制器,带有Relationship样式segue。

无论如何,Apple 的官方教程之一就是这样做的,因此您可以将您的代码与它进行比较,看看是否有区别:您的第二个 iOS 应用程序。该prepareForSegue方法本身并不真正涉及触发segue。它只是在 segue 运行之前调用以准备新的视图控制器。

于 2012-05-14T14:14:54.587 回答