【问题标题】:How to push from view controller to navigation view controller using prepareForSegue method?如何使用 prepareForSegue 方法从视图控制器推送到导航视图控制器?
【发布时间】:2012-05-14 12:52:40
【问题描述】:

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

我单击按钮,然后单击“连接检查器”,我向该导航控制器添加了推送事件,但没有发生 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];
        
        
    }
    
}

【问题讨论】:

    标签: ios uiviewcontroller uinavigationcontroller segue ios5.1


    【解决方案1】:

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

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

    【讨论】:

    • 嗨,保罗,是的,它们都设置正确。我找到了解决方案并编辑了我的答案。非常感谢您的建议。
    猜你喜欢
    • 2014-01-11
    • 1970-01-01
    • 2015-06-13
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    相关资源
    最近更新 更多