2012-10-06 23 views
5

在两个视图控制器之间传递数据的示例很多,其中一个视图控制器导航到另一个视图控制器。在视图控制器之间使用代理传递数据,无需任何导航控制器连接

但是是否有可能使用自定义协议&传递数据在未通过导航控制器连接的视图控制器之间的代表?

所以,一个例子可能是:三个视图控制器,即AB,CA导航到BB导航到C。我知道如何使用自定义协议&代表在A & B之间传递数据。但是我们能否通过C & A之间的数据。因此A可以是C的代表,从而可以从C接收数据。这可能吗?

任何帮助,将不胜感激。

回答

8

的一种方式是使用代表用于数据

的向后通过参考simple-delegate-tutorial-for-ios链接,由C数据传递到控制器。

检查basic-delegate-example链接。

另一种方式是通过发布通知。向后传递数据

检查Comunicate-Two-Views链接。

+0

thanx您早日答复。但在第一个示例中,两个视图控制器使用模态视图进行连接。第二个例子也一样。 – footyapps27

+0

耶可以使用通知,但我想知道是否可以使用自定义协议和代表来实现。 – footyapps27

+0

第二个例子不会工作,因为它们不会继承自定义协议。 嘿,我知道如何使用导航控制器连接的两个视图控制器之间使用委托传递数据。 – footyapps27

1

你可以使用一些单例类并在其中实现委托协议。所以你将有机会在任何视图控制器之间传递数据。

+0

你可以澄清一点。 – footyapps27

+0

好的。 Singleton是一个只有一个实例的desisn模式,你可以随时在代码中的任何地方调用它。因此,在您方案A,B和C的视图控制器出现一个多个类d,它可以访问的任何控制器,即使没有与navigationController –

+0

连接。这是单例的例子 * NSUserDefaults的userDefaults = [NSUserDefaults的standardUserDefaults]; NSNotificationCenter * notificationCenter = [NSNotificationCenter defaultCenter]; UIApplication * myApplication = [UIApplication sharedApplication]; –

相关问题