iPhone - 从顶视图控制器调用方法

时间:2011-08-26 20:04:37

标签: iphone

我有3个viewController类,A,B和C.

从A类开始,我推送并呈现B类,然后从B类推送并呈现C类。所有类都定义了委托协议,所以

  • b.delegate = a
  • c.delegate = b

现在我在C类中,但我需要从A类运行一个方法。

调用该方法的最佳方法是什么?我的意思是最好的做法。

我可以想象在B

上声明这一点
- (BOOL) myMethodOnA {
// this method on B will run the method on A and return it to C
   return [delegate myMethodOnA];
}

但这听起来像是一个糟糕的解决方案。

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:1)

取决于您想要在A级上运行的内容。

一个简单的选择是观察A类中的通知并发布C类通知

参考:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html

答案 1 :(得分:1)

我可能会错过一些明显但不应该起作用的东西吗?

[c.delegate.delegate myMethodOnA]

也养成使用访问者的习惯(确保你没有代理人的所有权)。 ARC使这更好。