View 如何从上一个视图移动到视图控制器层次结构中的任何视图

View 如何从上一个视图移动到视图控制器层次结构中的任何视图,view,uiviewcontroller,presentmodalviewcontroller,View,Uiviewcontroller,Presentmodalviewcontroller,补充:共有五个视图,分别为A、B、C、D、E。我使用当前视图控制器方法将视图A呈现给B,然后将视图B呈现给C。现在我想将视图控制器从视图C直接转换为A。我们如何做到这一点,一种方法(也许是最简单的方法)是使用UINavigationController并将UIViewControllers推到它上面 然后您可以简单地调用:[[self-navigationController]poptrootviewcontrolleranimated:YES] 如果确实需要模态视图控制器,另一种更复杂的处理方

补充:共有五个视图,分别为A、B、C、D、E。我使用当前视图控制器方法将视图A呈现给B,然后将视图B呈现给C。现在我想将视图控制器从视图C直接转换为A。我们如何做到这一点,一种方法(也许是最简单的方法)是使用
UINavigationController
并将
UIViewController
s推到它上面

然后您可以简单地调用:
[[self-navigationController]poptrootviewcontrolleranimated:YES]

如果确实需要模态视图控制器,另一种更复杂的处理方法是使用回调设置UIViewController,以注册它们在下次出现时应立即关闭

-(void)closeImmediately
{
    mCloseImmediately = YES;
}

-(void)viewWillAppear:(BOOL)animated
{
    if(mCloseImmediately)
    {
        [self dismissModalViewControllerAnimated:NO];
        return;
    }
    // ... other normal setup code
}

视图中执行此操作将出现
,如果没有动画,则意味着此
UIViewController
永远不会显示。

不,我们没有使用Navigation控件工具。仅使用当前视图控制器,我从问题中理解了这一点。我只是从您对该功能的渴望中建议,也许对您的设计进行更改是一个明智的选择。我自己创建了复杂的UIViewController层次结构,就像您的问题中描述的那样,我的答案是如何解决如何快速关闭这些层次结构的问题,但根据经验,我知道这可能会很麻烦。