如何解雇两个或多个dismissModalViewController?

Mad*_*han 5 iphone objective-c dismiss

我需要关闭两个模态视图控制器,我知道如何弹出两个或更多视图控制器

        UINavigationController* navController = self.navigationController;
    NSArray *array=[navController viewControllers];
    UIViewController* controller = [navController.viewControllers objectAtIndex:0];
    [navController popToViiewController:controller animated:YES];
Run Code Online (Sandbox Code Playgroud)

这是我如何导航回我的第一个视图,但如果有两个或更多的消除模态视图,那我该如何导航回来

请帮帮我,谢谢你,Madan Mohan

Bri*_*ian 5

来自以下文档-[UIViewController dismissModalViewController]:

如果连续呈现多个模态视图控制器,从而构建一组模态视图控制器,则在堆栈中较低的视图控制器上调用此方法会解除其直接子视图控制器和堆栈上该子级上方的所有视图控制器.发生这种情况时,只有最顶层的视图以动画方式被删除; 任何中间视图控制器都可以从堆栈中删除.最顶层的视图使用其模态过渡样式被忽略,这可能与堆栈中较低的其他视图控制器使用的样式不同.


Mad*_*han 2

UINavigationController* navController = self.navigationController;
NSArray *viewControllers=[navController viewControllers];
UIViewController* controller = [viewControllers objectAtIndex:0];
[navController popToViewController:controller animated:YES];
Run Code Online (Sandbox Code Playgroud)

如果你在上面的代码中将对象设置为索引 0,它会带你到第一个视图,这是一个推送视图控制器。

1)Rootview--->moodalview1--->moodalview2--->moodalview3 如果您使用上面的代码,那么您将处于根视图中。

2)Rootview--->Pushview1---->moodalview1--->moodalview2----->moodalview3。如果您使用上面的代码,您将进入 PushView。