2011-05-11 32 views
2

使用Interface Builder进行控制器通信时的Objective C最佳实践?

What's the best way to communicate between view controllers?

最佳实践ViewControllers之间的通信是注入你的依赖到堆栈。而不是使用委托。

在使用Interface Builder时,你如何做到这一点?例如,我在AppDelegate中有一个* navController变量。我希望在TableView中使用该变量。我如何从TableView类访问* navController变量?有没有办法注入它?

(我知道我可以在这种特殊情况下使用[self.navigationController]但我从一般的角度来看询问。)代表作为保姆的

+0

为什么你在App委托中有控制器变量?也请接受更多的答案,让人们有动力帮助你。 – jini 2011-05-11 20:24:23

+0

@jini:我正在尝试创建一个用例。问题的最简单形式是在使用Interface Builder时,如何在ViewController之间进行通信?从我链接的帖子中选择适用或应该使用代表的概念。 – 2011-05-11 20:51:26

回答

2

思考。你必须告诉你的保姆,如果你已经玩完,吃东西,看电视等。考虑到这一概念,您可以通知其他控制器通知您的“保姆”,以便她可以做些什么。但是,如果你只是想与另一个控制器通信,我通常会导入有问题的控制器类并投射一个指针。取决于我是否希望委托人做某件事。