我可以将委托定位到ViewController的“特定”实例,以获取它的数据吗?

时间:2012-08-08 18:27:52

标签: objective-c ios uiviewcontroller delegates delegation

我该怎么做?

我有 ViewController 1 ViewController 2

ViewController 1 定义协议, ViewController 2 符合协议。

我设置 ViewController 2 有一个委托,并在 ViewController 1 中调用一个方法。这个方法运行正常。并将确认发送回我的 ViewController 2

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

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

我有办法解决这个问题吗?

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

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

-

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

非常感谢任何帮助。提前谢谢!

努诺

编辑:

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

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

3 个答案:

答案 0 :(得分:0)

问题非常模糊,你应该发布一些代码来更好地解释你想要实现的目标。

  

“我可以在他们之间交换数据,但我想弄清楚   方法,从ViewController 1的特定实例获取数据   ViewController 2.“

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

将(UIViewController *)发送者添加到协议消息中。

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

我不得不同意索林的意见,你最好使用通知。

这些问题通常可以通过架构改进来解决。如果数据在正确的位置,请务必退后一步。