0

我怎样才能做到这一点?

我有ViewController 1ViewController 2

ViewController 1定义了一个协议,ViewController 2遵循它。

我设置ViewController 2有一个委托并调用ViewController 1中的一个方法。此方法运行良好。并将确认发送回我的ViewController 2

我可以在它们之间交换数据,但我试图找出一种方法,从 ViewController 1 的特定实例获取数据到ViewController 2

因为当我使用我的委托时,要在ViewController 1中运行一个方法,它不适用于我感兴趣的那个特定实例。

有没有办法解决这个问题?

我可以设置我的委托,一个特定实例的委托,以便我可以获取它的状态吗?这可能吗?如果是这样,怎么办?

换句话说,我可以使用我的委托来定位特定实例吗?

--

ps 如果我尝试获取由 ViewController 1 统治的属性的数据,它的数据为零(我认为这是因为我没有针对特定实例)!我可以解决它的一种方法是使用一种读取“已保存数据”的方法。但是我会复制代码,并使用以前的 ViewController 中已经可用的数据来实例化新对象。

非常感谢任何帮助。先感谢您!

努诺

编辑:

SetupTableViewController *delegate = [[SetupTableViewController alloc] init];
[delegate setDelegate:self];

从现在开始,我试图获得的每一个属性都是零。如何将其定位到我以前的 ViewController 的特定实例?我不想实例化一个新的 SetupViewController。我真正需要的是访问我的 SetupViewController 的现有实例。

4

3 回答 3

0

这个问题真的很模糊,你可能应该发布一些代码来更好地解释你想要实现的目标。

“我可以在它们之间交换数据,但我正试图找出一种方法,从 ViewController 1 的特定实例获取数据到 ViewController 2。”

那么当你做 myViewController1Instance.delegate = self; ,您进行的任何委托调用都只会从 myViewController1Instance 对象发送到 ViewController2,而不是从 ViewController1 类的其他实例发送。

于 2012-08-08T18:39:39.730 回答
0

不要像您尝试做的那样使用委托,这有点尴尬,而是尝试使用通知..当一个实例知道它需要发送一些东西时,它会抛出一个通知,它被视图控制器 2 捕获。

为什么屏幕上有多个 vc1 实例?你能提供更多关于你想要达到的目标的信息吗?

于 2012-08-08T18:41:29.340 回答
0

将 (UIViewController*)sender 添加到您的协议消息中。

收到邮件后,检查发件人,如果不是您感兴趣的,请退回。

不过,我必须同意索林的观点,您可能最好使用通知。

此类问题通常可以通过架构改进来解决。退后一步想想数据是否在正确的位置总是好的。

于 2012-08-08T19:32:03.220 回答