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

时间:2012-05-14 12:52:40

标签: ios uiviewcontroller uinavigationcontroller segue ios5.1

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

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


    }

}

1 个答案:

答案 0 :(得分:0)

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

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