如何在运行时获取应用程序的所有ViewControllers?据我所知self.navigationcontroller.viewControllers
只返回导航堆栈中那些控制器的NSArray。但是有什么方法可以访问我的应用程序的ViewControllers吗?
答案 0 :(得分:1)
AFAIK没有这样的方式,除非你照顾好自己。您可以访问所有导航控制器,但它们只能保存堆栈中当前初始化的控制器。总是有控制器可能不在任何导航中,例如,模态视图控制器。如果你需要这个,我会说你做错了什么:)
也许唯一的方法是将它们全部保存在您完全控制的数组中。
答案 1 :(得分:1)
接受Umka的回答。
如果不确切知道自己想要做什么,这可能完全有点过头了,但它可能对你有帮助。
你可以继承UIViewController(例如AddToArrayViewController),并在自定义init方法中将它添加到你在某处定义的一些Singleton。这样,无论何时初始化ViewController(它是AddToArrayViewController的子类),它都将被添加到Singleton中的数组中。
但是,你需要确保在删除/清理ViewControllers时也删除它们,否则你只会在该数组中有一个悬空指针列表,这不是很安全。