ios - 如何在 iOS 中获取所有应用程序的 ViewControllers?

标签 ios objective-c cocoa-touch uiviewcontroller

如何在运行时获取应用程序的所有 ViewController?据我所知,self.navigationcontroller.viewControllers 仅返回导航堆栈上的那些 Controller 的 NSArray。但是有什么方法可以访问我的应用程序的所有 ViewController 吗?

最佳答案

关注 Umka 的回答。

在不知道你想要做什么的情况下,这可能完全是矫枉过正,但它可能对你有帮助。

您可以子类化 UIViewController(例如 AddToArrayViewController),并在自定义初始化方法中将其添加到您在某处定义的某个 Singleton。这样,每当您初始化一个 ViewController(它是您的 AddToArrayViewController 的一个子类)时,它将被添加到您的 Singleton 中的一个数组中。

但是,您需要确保在移除/清理 ViewController 时也移除它们,否则您将在该数组中只有一个悬空指针列表,这并不安全。

关于ios - 如何在 iOS 中获取所有应用程序的 ViewControllers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757639/

相关文章:

ios - 在哪里可以找到 Apple api 列表?

ios - 使用 AirWatch 部署企业 iOS 应用程序的最佳方式是什么

javascript - iPad、iPhone Safari 浏览器 - 时间问题,时差 5 小时

iOS - UIViewController - 覆盖 UIViewController 子类链中的 getter 时出现运行时错误

ios - WWDC 2011 示例代码

objective-c - XCode 4、ParseKit 和存档目标

objective-c - 更改 UITextView 的字体颜色

ios - 找不到适用于 iOS 的 stig -JSON dmg 文件

ios - 在 iOS 应用程序中下载并解压文件

objective-c - 带有&符号的文本文件被绘制到电子邮件消息停止模板中