Al implementar un cambio entre dos controladores de vista, ¿cómo cambiar una propiedad del controlador de vista de destino utilizando el objeto segue? La documentación dice que esto se puede hacer dentro del método prepareForSegue: sender: Lo intenté pero no fue exitosoiOS 5 implementación segue
Respuesta
No sé si necesita una respuesta a esto, pero fue una publicación tan solitaria, y si estoy en lo cierto, esto ya no cae dentro de NDA. Si estoy equivocado, por favor modere mi respuesta al olvido, así que aquí vamos: Acabo de terminar de hacer algo que utiliza lo que necesita. Este es el código que funciona para mí:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"relevantSegueIdentifier"])
{
// [segue destinationViewController] is read-only, so in order to
// write to that view controller you'll have to locally instantiate
// it here:
ViewController *upcomingViewController = [segue destinationViewController];
// You now have a solid reference to the upcoming/destination view
// controller. Example use: Allocate and initialize some property of
// the destination view controller before you reach it and inject a
// reference to the current view controller into the upcoming one:
upcomingViewController.someProperty = [[SomePropertyClass alloc] initWithString:@"Whatever!"];
upcomingViewController.initialViewController = [segue sourceViewController];
// Or, equivalent, but more straightforward:
//upcomingViewController.initialViewController = self;
}
}
Esto supone que tanto someProperty y initialViewController son descriptores de acceso del controlador de vista de destino sintetizados. ¡Espero que esto ayude!
He escrito un tutorial que da ejemplos de código para pasar información a la nueva escena y la información de una escena usando la delegación así que échale un vistazo que debería resolver tu problema. iOS 5 Storyboard: How To use Segues, Scenes and Static Content UITableViews
Leí el blog antes de llegar a este post ... gracias por el blog. – thesummersign
Hice un video sobre este tema. Espero que ayude. http://full.sc/17yKkZF
Lo que yo uso en el controlador de vista de origen es:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UIViewController *upcomingViewController = [segue destinationViewController];
upcomingViewController.view.tag = [[segue identifier] hash];
}
Y luego en el controlador de vista de destino que uso (utilización por ejemplo en el viewDidAppear)
if(self.view.tag == [@"MySeqgueIdentifier" hash])
{
// Do something here...
}
Esto es muy bueno, ya no es necesario crear ninguna propiedad, etc. y todo funciona bien desde el constructor de interfaces.
- 1. Push segue en iOS 5 no funciona
- 2. ios segue "cancelar"
- 3. Singleton en iOS 5?
- 4. ios 5 UISearchDisplayController choque
- 5. iOS 5 Custom Fonts
- 6. Implementación del navegador EcmaScript 5
- 7. Muestra la vista actual usando Segues/Storyboard en iOS 5
- 8. iOS 5 Developer Transition Guide?
- 9. iOS 5 Storyboards and Nibs
- 10. iOS 5 variables de instancia
- 11. jQuery events en iOS 5
- 12. Comentarios de iOS 5 Storyboard
- 13. Custom Getter & Setter iOS 5
- 14. personalización de IOS 5 TabBar
- 15. iOS 5 colgando en ASIHTTPRequests
- 16. ios: Segue personalizado entre dos viewcontrollers en modo apaisado
- 17. Segue no funciona con iOS6
- 18. Pasar datos de un controlador de vista a otro; iOS <= 4 vs iOS 5
- 19. Implementación de Hashtable para Delphi 5
- 20. iOS 5 Implementación de un controlador de página con guiones gráficos en la aplicación existente
- 21. Objetivo de implementación de iOS
- 22. Implementación Diffie-Hellman para iOS?
- 23. Cómo apuntar a iOS 5 e iOS 6
- 24. Admite la autorrotación iOS 6 e iOS 5
- 25. Xcode 4.2 iOS 5: Múltiples segues de un UITableView
- 26. iOS 5 "Centro de notificaciones" API?
- 27. ShareKit compatible con iOS 5 ahora?
- 28. PresentModalViewController en Storyboard programáticamente iOS 5
- 29. Error de Xcode 4.5 en IOS 5
- 30. iOS 5 Safari y el elemento IFRAME
cae bajo NDA pero en 3 días no será el lanzamiento oficial el 14 de octubre, pero me gusta tu respuesta +1 –
intenté con lo que dices pero las propiedades en mi 'destinationViewController' no se actualizan . ¿Algún consejo? – Francesco
Supongo que utiliza un acceso sintetizado (no un ivar privado) del controlador de vista de destino y que el controlador de vista ya está instanciado durante la configuración de la aplicación (es decir, el guión gráfico con controladores de vista reales colocados en él, un intervalo entre ellos lanzamiento). En ese caso, debería funcionar. Podría ser algo así como que el sistema no conozca su destino específico. ver clase de controlador. La clase ViewController en mi ejemplo es una subclase de UIViewController, y antes de @implementation hago algo como '#import' ViewController.h "'. Podría ser una de estas cosas? – DarqueSandu