Tengo una aplicación con dos segmentos. En uno de los segmentos, el controlador de vista actual se convierte en un delegado y el otro no.prepareForSegue y delegados
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"MoreOptions"]) {
UINavigationController *navigationController = segue.destinationViewController;
MoreOptionsViewController *controller = (MoreOptionsViewController *)navigationController.topViewController;
controller.delegate = self;
} else if ([segue.identifier isEqualToString:@"FullStoryView"]) {
SingleStoryViewController *detailViewController = segue.destinationViewController;
detailViewController.urlObject = sender;
}
}
Todo esto funciona bien, pero me gustaría tratar de entender mejor el código. Lo que no entiendo es que tengo que obtener una referencia al MoreOptionsViewController tomándolo de navigationController.topViewController en lugar de simplemente obtenerlo de segue.destinationViewController como lo hago en la segunda condición if. ¿Es porque estoy configurando el controlador de vista actual (uno mismo) como el delegado? Una vez más, no estoy tratando de resolver un problema, simplemente tratando de comprender mejor lo que está sucediendo.
Ahh sí, a veces la respuesta está en el sitio, ¿o no? Gracias. –