Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Pasar un objeto por medio de UIStoryboard Segue [Solucionado]

Buenas quisiera q por favor me ayuden de como puedo pasar un objeto desde la transicion custom por medio de la clase segue. El problema es el siguiente tengo dos uiviewcontroller ejemplo UIViewControllerFirst (Este tiene un objeto persona, pero con propiedad "nonatomic y retain") UIViewControllerSecond (Este tiene un objeto persona, pero con propiedad "nonatomic y assign") En mi clase segue tiene lo siguiente: [PHP]- (void)perform { UIViewControllerFirst *vcSource = (UIViewControllerFirst *)super.sourceViewController; UIViewControllerSecond *vcDestiny = (UIViewControllerSecond *) super.destinationViewController; Persona *auxObj = [vcSource Persona]; vcDestiny.Persona = auxObj; [UIView transitionFromView:vcSource.view toView:vcDestiny.view duration:0.5 options:UIViewAnimationOptionTransitionCurlDown completion:nil]; [UIView commitAnimations]; }[/PHP] y cuando estoy en la pantalla de UIViewControllerSecond y quiero mostrar mi objeto Persona por medio de UIViewAlert me sale el error de "Program received signal : SIGABRT" Este es problema de Memoria, cierto? Ahora no se porq sale eso. Ayudenme por favor y si es que me pueden mandar un pequeno ejemplo(solo de, como pasar objeto entre dos uiviewcontroller por medio de segue) estaria muy agradecido. Por favor les pido su ayuda. GRACIAS.

7 Respuestas

0voto

Peter Puntos289420
Hola ryuchan, intenta reinicando el simulador para ver si se soluciona, en la mayoría de los casos si. Ese error también pasa cuando estas limpiando la memoria y eso ya sucedió, entonces igual estas mandando demasiados releases a un objeto. Prueba y nos cuentas. Saludos.

0voto

ryuchan Puntos240
Disculpa como puedo reiniciar el simulador? o se refiere a hacerle build and clean al proyecto?

0voto

Peter Puntos289420

ryuchan

Disculpa como puedo reiniciar el simulador? o se refiere a hacerle build and clean al proyecto?

Selecciona iOS Simulator > Reset Content and Settings. No estaría de más reiniciar la Mac también. Confirma lo que te comente sobre la memoria. Saludos.

0voto

ryuchan Puntos240
Le cuento q nada, al parecer algo estoy haciendo mal con el manejo de la memoria. Parece que es la clase segue lo q me esta provocando este error. Mi clase segue es esa la q mostre al principio pero no lo pasa el objeto cargado de UIViewControllerFirst al UIViewControllerSecond, lo probe viendo el contenido del objeto y no tiene nada, siendo q lo tengo cargado en mi primer controlador pero cuando estoy en el segundo no tiene nada. Por favor digame si lo estoy haciendo bien mi clase segue, por favor.

0voto

Peter Puntos289420
Te pongo un ejemplo para que pruebes. [PHP] - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Asegurate que el nombre de tu SEgue en el storyboard es el mismo que en esta linea. if ([[segue identifier] isEqualToString:@"EL_NOMBRE_DE_TU_SEGUE"]) { // La referencia al view controller de destino YourViewController *vc = [segue destinationViewController]; // Pasa cualquier objeto al view controler asi... [vc setMyObjectHere:object]; } }[/PHP] Saludos.

0voto

ryuchan Puntos240
Gracias Peter por su ayuda pude solucionar mi problema con dicho codigo. Gracias.

0voto

Peter Puntos289420
De nada ryuchan, que bueno que te funcionó ! :D

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...