2

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

换句话说,在 vc A 中,我想调用 vc B 中的一个方法(在 A 的任何 segue 中都没有命名),但不明白如何从 A 获取对 B 的引用。创建一个新的 segue它将创建一个新的vc;不是我想做的。

我认为有一些方法可以通过情节提要或其相关的命名 segue 函数来追踪对任何其他 vc 的引用,但一直在努力寻找一种方法来做到这一点。在我通常生活的深度嵌入的世界中,我会简单地创建一个单例类,以便可以从任何地方实例化它,但这对于视图控制器来说似乎不合适(如果可能的话)。

任何帮助将不胜感激。

4

1 回答 1

2

我建议您不要尝试通过情节提要的 segue 功能来执行此操作。尝试使用 NSNotifications。您必须自己编写这些代码(即不在 Storyboard 中),但它们将允许您根据您在通知中传递的信息来广播 VC-B 调用方法的“请求”。VC-B 必须在监听它(观察),但这是一种很好的解耦类的方式,但仍以任意方式进行通信。

于 2012-02-01T03:18:51.570 回答