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



假设有五个视图作为A、B、C、D、E,我使用当前视图控制器方法将视图A呈现给B,然后将B呈现给C。现在我想直接将视图控制器从视图C取消为视图A。我们如何进行

实现这一点的一种方法(也许也是最简单的方法)是使用UINavigationController并将UIViewController推到它上面。

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

如果您真的想要模态视图控制器,另一种更复杂的处理方法是设置带有回调的UIViewControllers,以注册它们在下次出现时应该立即关闭。

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

viewWillAppear中执行此操作并且没有动画意味着该UIViewController永远不会被显示。

最新更新