如何使用prepareForSegue方法从视图控制器推送到导航视图控制器?

3
我有一个项目,初始屏幕是视图控制器,然后是嵌入式导航视图控制器的视图控制器。我还在第一屏幕上添加了一个按钮,当点击它时,我希望导航控制器屏幕被打开。
我点击了按钮,然后在“连接检查器”中添加了到该导航控制器的推送事件,但是转场并没有发生。请问我该如何实现呢?
解决方案:
最终,在一些研究之后,我成功地将此功能实现。以下是我正在使用的代码:
- (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];
        
        
    }
    
}
1个回答

0

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

无论如何,官方的Apple教程之一就是这样做的,因此您可以将您的代码与其进行比较,看看是否有差异:Your Second iOS AppprepareForSegue方法本身并不涉及触发segue;它只是在segue运行之前调用以准备新的视图控制器。


嗨,保罗,是的,它们都被正确设置了。我已经找到了解决方案,并且也编辑了我的答案。非常感谢你的建议。 - Kite Runner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接