Objective c 基于故事板的应用程序中视图控制器之间的任意通信

Objective c 基于故事板的应用程序中视图控制器之间的任意通信,objective-c,uiviewcontroller,uistoryboard,Objective C,Uiviewcontroller,Uistoryboard,给定一个基于故事板的应用程序,任何一个视图控制器如何在不执行prepareForSegue方法(仅通过segue参数传递目标vc的引用)的情况下调用任何其他视图控制器的方法(以访问其封装的信息)?我知道信息可以从父vc传递到子vc,但我需要一种更通用的方法,让任何vc在任何时间点将信息传递给任何其他vc 换句话说,在vc A中,我想调用vc B中的一个方法(在A的任何序列中都没有命名),但不知道如何从A中获取对B的引用;不是我想做的 我认为可以通过故事板或其相关的命名segue函数来追踪任何其他

给定一个基于故事板的应用程序,任何一个视图控制器如何在不执行prepareForSegue方法(仅通过segue参数传递目标vc的引用)的情况下调用任何其他视图控制器的方法(以访问其封装的信息)?我知道信息可以从父vc传递到子vc,但我需要一种更通用的方法,让任何vc在任何时间点将信息传递给任何其他vc

换句话说,在vc A中,我想调用vc B中的一个方法(在A的任何序列中都没有命名),但不知道如何从A中获取对B的引用;不是我想做的

我认为可以通过故事板或其相关的命名segue函数来追踪任何其他vc的引用,但一直在努力找到这样做的方法。在我通常生活的深嵌入世界中,我只需创建一个singleton类,这样就可以从任何地方实例化它,但对于视图控制器来说,这似乎是不合适的(如果可能的话)


任何帮助都将不胜感激。

我建议您不要尝试通过故事板序列功能来实现这一点。尝试使用NSNotifications。您必须自己编写这些代码(即不在故事板中),但它们允许您根据您在通知中传递的信息广播VC-B调用方法的“请求”。VC-B必须倾听(观察),但这是一种很好的解耦类的方法,但仍然以任意方式进行通信。

感谢您及时而直接的回复。我曾经考虑过使用通知作为可行的候选,并且在过去肯定使用过它们。我还考虑创建一个singleton类,它只保存所有vc引用地址,然后可以在任何地方实例化这些地址。再次感谢您分享您的建议。您的单例引用所有vs违反了松耦合,所以我也要避免这种情况。我知道我一直在唠叨这个问题,但任何时候你把两个(或更多)课程联系在一起,你都应该有一个很好的理由。