ios xcode xcode4 delegates uistoryboard

ios - Storyboard: configurar delegados



xcode xcode4 (2)

Correcto. Establezca el delegado u otros datos en su prepareForSegue:sender: Aquí hay un ejemplo:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Check the segue identifier if ([segue.identifier isEqualToString:@"showDetail"]) { // Get a reference to your custom view controller CustomViewController *customViewController = segue.destinationViewController; // Set your custom view controller''s delegate customViewController.delegate = self; } }

Antes de los guiones gráficos, pude establecer delegados y orígenes de datos simplemente arrastrando una salida a una clase. Con guiones gráficos, no puedo arrastrar la salida a otro controlador de visualización; no hay un destino que responda a eso.

Si hago clic en un objeto de controlador de vista, puedo ver al propietario de la clase en la parte inferior, pero tan pronto como selecciono el otro controlador de vista que contiene el enchufe, la selección anterior se ha ido, por lo que no puedo conectar los dos.

¿Es la forma en que Apple dice que solo deberíamos conectarlos programáticamente?


Si el destino segue del guión gráfico View Controller es un UIViewController, entonces la respuesta de @Marco es correcta. Pero si su controlador de vista de destino es un UINavigationViewController, entonces debe obtener UIViewController desde UINavigationViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Check the segue identifier if ([segue.identifier isEqualToString:@"chooseCategoryType"]) { // Get a reference of your custom view controller if your segue connection is an UIViewController // CustomViewController *customViewController = segue.destinationViewController; // Get a reference of your custom view controller from navigation view controller if your segue connection is an UINavigationViewController CustomViewController *customViewController = [[[segue destinationViewController] viewControllers] objectAtIndex:0]; // Set your custom view controller''s delegate customViewController.delegate = self; } }