当前位置: 首页 > 面试题库 >

如何快速将视图控制器弹出到以前的视图控制器之一?

萧允晨
2023-03-14
问题内容

我一直试图将我的视图控制器弹出到我的视图堆栈中的以前的视图控制器之一。假设在我的视图堆栈中有
firstVC,secondVC,thirdVC和fourthVC 视图 控制器
。当前的视图控制器是第四个,在fourthVC中有一个表视图。如果用户删除tableview中的所有行,则应将用户 定向
secondVC 。我有一个想法,我将创建另一个Navigationcontroller并将其与 presentViewController
命令一起 呈现 。但是,这不是我的问题的解决方案。因为我认为这种情况下会出现导航问题。如何找到这种情况的最佳解决方案?

谢谢您的回答,最好的问候


问题答案:

而不是进行通用popViewControllerAnimated:调用,请使用popToViewController:animated:。在这种情况下,您可以检测到用户是否删除了所有行,请执行以下操作(否则只需弹出一个视图控制器):

let viewControllers: [UIViewController] = self.navigationController!.viewControllers as [UIViewController];
self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true);


 类似资料:
  • 以下的一段代码相当于定义一个ParameterizableViewController视图控制器的快捷方式,该控制器会立即将一个请求转发(forwards)给一个视图。请确保仅在以下情景下才使用这个类:当控制器除了将视图渲染到响应中外不需要执行任何逻辑时。 以下是一个例子,展示了如何在MVC Java编程配置方式下将所有"/"请求直接转发给名字为"home"的视图: @Configuration

  • 我找到了一些关于这个问题的帖子,但是没有一个能解决我的问题。 说像我已经... ViewControlllerA ViewControlllerB 我试图将ViewControlllerB添加为ViewControlllerA中的子视图,但是,它抛出了一个错误,如""。 下面是代码。。。 视图控制器 ViewControllerB只是一个带有标签的简单屏幕。 视图控制器B 编辑

  • 问题内容: 我正在尝试使用以下代码弹出到根视图控制器: 这通常可行,但是当当前视图是模式视图时,尝试使用此代码时出现错误。在这种情况下,我该如何跳回到根视图控制器? 提前致谢。 问题答案: 您可以检查当前控制器是否存在,如果存在,则将其关闭,然后直接转到当前控制器。

  • 问题内容: 我没有找到有关此问题的文章,但没有一个解决我的问题。 就像我说的那样。 ViewControllerA ViewControllerB 我试图将添加为的子视图,但是它 抛出类似“ ” 的错误。 下面是代码… ViewControllerA ViewControllerB只是一个带有标签的简单屏幕。 ViewControllerB EDIT 根据用户答案的​​建议解决方案,ViewCon

  • 我有分段控件和容器视图,现在我如何创建2个视图,分段控件需要在容器视图中切换这2个视图? 我找不到任何Swift或obj c的教程。

  • 我有一组视图和一个注销按钮,它将用户注销并将他们带到第一个视图控制器(一个登录/注册屏幕)。我试着用模态表示来做这件事,但它破坏了我的导航,而且我不能使用pop到根视图控制器,因为它不是根视图控制器--我至少有2个导航控制器的深度。我怎么可能只显示第一个呢?我基本上需要它的行为,就好像应用程序刚刚重新启动。解开塞格会有什么帮助吗?谢谢