父视图控制器和子视图控制器之间通信的更好方法是什么?

New*_*bee 7 iphone cocoa-touch objective-c uiviewcontroller ios

这可能是一种简单的方法,但我需要那些熟悉iOS的人的指导.

如果父视图控制器想要向所有子视图控制器发送一个特定的消息,那么最好的方法是什么?现在我仍然在每个子视图控制器中编写了一个方法,并在必要时通知我,在某种情况下我想通知所有孩子的?我该怎么办?我认为我不需要在所有ViewControllers中编写相同的方法.

要么

我是否需要进行子类化....谢谢......

Lit*_*T.V 9

与父子Viewcontrollers通信,有很多选择

家长 - >孩子

  • 直接交互,实例在父母中

儿童安全>父

  • 代表团[最受欢迎]
  • 通知
  • 通过数据库,Plist文件等传递价值
  • 存储在appdelegate实例中并传递值[uiapplicationdelegate]
  • NSUserDefaults的

最精彩的详细解释


Cap*_*uff 5

如果您只想调用子视图控制器上的方法,您可以使用:

[[self childViewControllers] makeObjectsPerformSelector:@selector(nameOfSelector:) withObject:objectToSend];
Run Code Online (Sandbox Code Playgroud)

或将对象与选择器一起传递的其他方法之一。

正如@Gianluca Tranchedone 建议的那样,您可以使用委托或观察者模式,但这实际上取决于您需要做什么以及您的代码是如何构建的。使您的父视图控制器符合子视图控制器的委托将使您能够以更清晰的方式构建代码。