假设有五个视图作为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
永远不会被显示。