Cómo devolver un valor desde View2 a Vista1 al utilizar la barra de navegación
-
04-10-2019 - |
Pregunta
Soy nuevo en el desarrollo del iPhone. ¿Cómo puedo llevar a un valor de cadena de View2 a Vista1 al utilizar la barra de navegación. No tengo ningún problema en llevar los valores de cadena de Vista1 a View2 a vista3 a .... utilizando pushviewcontroller Pero cuando vuelvo a vistas anteriores utilizando el botón Atrás de la barra de navegación, no puede capaz de valores de cadena de retención. Necesito su ayuda para resolver este problema.
Gracias de antemano
Solución
Esta cosa se puede hacer fácilmente si el pase de la referencia de la clase actual a la siguiente clase y cambiar los valores mediante el uso de esta referencia.
Al igual que: La clase que es para ser empujado.
@interface B:UIViewController{
id delegate;
}
@property (nonatomic,retain) id delegate;
@end
@implementation B
@synthesize delegate;
-(void)methodA{
[delegate setNewString2:@"Madhup"];
}
@end
La clase de la que usted está empujando B:
@interface A:UIViewController{
NSString *newString;
}
@property (nonatomic,retain) NSString *newString;
@end
@implementation A
@synthesize newString
- (void)method2{
B *newBObject = .......;
[newBObject setDelegate:self];
[self.navigationController pushViewCo.......];
}
@end
Espero que esto ayude.
Otros consejos
Hay más de una manera de hacer esto. Aquí están algunos:
-
Se puede acceder a todos los controladores de vista de la pila de navegación a través de la propiedad viewControllers del mando de navegación:
self.navigationController.viewControllers
-
Se puede llegar al controlador de vista anterior (es decir, el que empuja el controlador de corriente en la pila de navegación) a través de la propiedad parentViewController:
self.parentViewController
-
Puede utilizar el patrón de delegado, en el que el anterior (padre) controlador de vista sería la corriente (niño) delegado del controlador.
-
Puede mantener una referencia (retener) al controlador de niño en el controlador de matriz.
En los primeros 3, el controlador niño sería responsable de entregar los datos al controlador de matriz. En el cuarto, el padre podría obtener los datos de los niños antes de soltarlo.