2012-10-06 28 views
5

Hay muchos ejemplos de pasar datos entre dos controladores de vista, donde un controlador de vista navega a otro controlador de vista.pasando datos utilizando delegados entre viewcontrollers sin ninguna conexión de controlador de navegación

¿Pero es posible pasar datos usando protocolos personalizados & delegados entre los controladores de vista que no están conectados por el controlador de navegación?

Por lo tanto, un ejemplo podría ser: Tres controladores de vista son, A, B, C. A navega a B, y B navega hasta C. Sé cómo pasar datos entre A & B usando protocolos personalizados & delegados. Pero podemos pasar datos entre C & A. Por lo tanto, A puede ser delegado de C y, por lo tanto, puede recibir datos del C. es posible?

Cualquier ayuda sería apreciada.

Respuesta

8

Una forma es utilizar delegados para el paso hacia atrás de los datos

Consulte simple-delegate-tutorial-for-ios enlace para pasar datos de C a un controlador.

Compruebe basic-delegate-example enlace.

Otra forma es por notificación de publicación. para el retroceso de los datos

Verificar Comunicate-Two-Views enlace.

+0

Gracias por su pronta respuesta. Pero en el primer ejemplo, los dos controladores de vista están conectados usando la vista modal. Lo mismo ocurre con el segundo ejemplo. – footyapps27

+0

sí, se pueden usar notificaciones, pero quería saber si se puede lograr utilizando protocolos y delegados personalizados. – footyapps27

+0

el segundo ejemplo no funcionará, porque no heredan el protocolo personalizado. Hola, sé cómo pasar datos usando delegados entre dos controladores de vista que están conectados mediante el controlador de navegación. – footyapps27

1

Puede usar alguna clase singleton e implementar un protocolo de delegado en ella. Por lo tanto, tendrá la oportunidad de pasar datos entre cualquier controlador de vista.

+0

podría dilucidar un poco sobre eso. – footyapps27

+0

OK. Singleton es un patrón desisn que tiene solo una instancia y siempre puede llamar desde cualquier lugar de su código.Por lo tanto, en su esquema A, B y C, los controladores de vista aparecen una clase más D, que puede tener acceso a cualquier controlador, incluso sin conexión con navigationController –

+0

Estos son ejemplos de singletons NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults]; NSNotificationCenter * notificationCenter = [NSNotificationCenter defaultCenter]; UIApplication * myApplication = [UIApplication sharedApplication]; –

Cuestiones relacionadas