弹出到导航控制器层次结构中的另一个视图

时间:2015-03-06 12:52:56

标签: objective-c

我有嵌入导航控制器的树形视图控制器。 第一个一个包含会话,第二个包含特定会话的消息。 第三是创建新会话。

The view controllers structure

当用户创建新会话时,他会通过会话重定向到第二个控制器。所以问题是当用户从第三个控制器重定向到第二个 vc并点击第二个视图控制器上的“返回”按钮时如何弹出在创建新会话后,从第二个视图控制器转到第一个。因为导航控制器会将用户弹出到上一个控制器 - 第三个控制器新会话。

P.S。 第一个视图控制器不是根控制器。之前有几个控制器。

2 个答案:

答案 0 :(得分:2)

前段时间我问过,现在我变得更聪明,所以我能以一种非常正确的方式回答我自己的问题。

我不得不使用模态视图控制器。因此,当我们想要创建一个新的对话时,我们将第三个VC 显示为模态视图控制器,并且当创建对话时,我们将此委托给第一个VC 。在第一个视图控制器中,我正在创建第二个VC 并在之后推送它我解除了模态VC。

NewConversationViewController *vc = [NewConversationViewController new]; //any setups
[self.navigationController pushViewController:vc animated:NO];
[self dismissViewControllerAnimated:modalVC completion:nil];

答案 1 :(得分:0)

你需要做类似的事情。通过在导航栏项目上添加自定义后退按钮。

    NSArray *viewContrlls=[[self navigationController] viewControllers];
    for( int i=0;i<[ viewContrlls count];i++){
        id obj=[viewContrlls objectAtIndex:i];
        if([obj isKindOfClass:[ManageAlertsListViewController class]] ){
            [[self navigationController] popToViewController:obj animated:YES];
            return;
        }
    }