iOS 检查 ViewController 实例是否打开并切换 ViewControllers

标签 ios uiviewcontroller uinavigationcontroller

我有一个带有嵌入式 NavigationController 的基本 ViewController 来提供工具栏。 ToolBar 有三个按钮,用于通过 segue 调用 ViewControllers 来呈现数据。

enter image description here

一点一点地显示和关闭每个数据 ViewController 没有问题,但我想在呈现 ViewController 的所有三个数据之间切换,但不要多次关闭和重新打开 ViewController。

  1. 如何在 VC1 - 3 之间切换时让 ViewController 1 - 3 保持打开状态?
  2. 我如何知道呈现 ViewController (VC1 - 3) 的数据是否已打开?
  3. 当关闭 VC1、VC2 或 VC3 以返回基本 ViewController 时,如何关闭所有打开的 ViewController (VC1 - 3)?

基础 ViewController 是 TabBarController 的一部分。所以,我不想为 VC1 - 3 创建另一个。我的目标是使用按钮在 VC1、2 和 3 之间切换,但我不知道如何开始。我试图找到打开的 ViewController 使用:

ViewController1 *presenter = [(UITabBarController *)self.presentingViewController viewControllers][0];

但它只是告诉我 NavigationController 是呈现 ViewController。但是没有办法请求 NavigationController 打开的 ViewController。有什么想法吗?

谢谢!

最佳答案

好吧,我想我终于明白你在做什么了。您有一个带有工具栏的基本 View Controller 。单击工具栏上三个按钮中的任何一个将显示三个 View Controller 之一。这些 View Controller 还显示一个工具栏,允许您在这三个 View Controller 之间切换,但您希望这些 View Controller 在用户在它们之间切换时保持不变。用户完成后,他们可以单击导航栏上的后退按钮弹出所有这些 View Controller 并返回到基本 View Controller 。是吗?

subview Controller 是否有必要使用工具栏而不是 UITabBarControllerUITabBarController 将为您维护对所有三个 View Controller 的引用,您不必在它们之间进行切换。例如,基本 View Controller 仍然可以有三个按钮,按钮将 pushViewController:animated: 一个新的 UITabBarController 与三个 View Controller ,它还会选择选定的查看 Controller 取决于按下哪个按钮。这可能会让你的事情变得更容易。

我提出这个建议的原因是我认为尝试使用导航 Controller 在这三个 VC 之间进行 segue 不是导航 Controller 的正确用法。像这样的 Segues 是为了传达这些 VC 之间的等级关系,但它们看起来像 sibling 而不是彼此的 child 。

关于iOS 检查 ViewController 实例是否打开并切换 ViewControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21504599/

相关文章:

IOS如何摇一摇改变View

ios - 标题中的 Swift 可扩展搜索栏?

iphone - 滚动 UIDatepicker 滚轮时出现错误位置

ios - UIPageViewController 更改时更改 UINavigationController 的标题

ios - 在 App delegate swift 中获取 UIVIewController 的名称

ios - popToViewController 没有弹出所有的 View Controller

ios - 添加 UIBarButtonItem 覆盖 UINavigationController 后退按钮

iOS 5 Twitter API 在模拟器与真实 iOS 设备中的行为不同

swift - 在 tableView 的单元格选择上打开重复的 viewControllers (swift)

ios - 从自定义容器 Controller 观察 subview Controller 的工具栏项