Storyboard UIViewController con múltiples classs

Quiero un UIViewController en mi storyboard ejemplificado por varias classs. Entonces dejé el campo "class" vacío en mi storyboard (por lo que de forma pnetworkingeterminada, es UIViewController ?). Luego, relleno la ID del guión gráfico con " MyGenericView ".

Aquí hay alguna class:

 @interface ClassA: UIViewController @interface ClassB: UIViewController 

MyGenericView contiene todo el prototipo que necesito para build mi vista en ClassA y ClassB. Aquí es cómo instancié mi ClassA :

 ClassA *myClass = (ClassA*)[storyboard instantiateViewControllerWithIdentifier:@"MyGenericView"]; 

Finalmente, mi vista se muestra en la aplicación pero el código de mi ClassA nunca se llama. El object devuelto por instantiateViewControllerWithIdentifier es un UIViewController , el lanzamiento no funciona.

No quiero llenar "class" de campo con ClassA porque quiero reutilizar esta vista para ClassB . Sin embargo, no quiero duplicar esta vista en mi storyboard.

Dunno si parece claro para ti, me disculpo por mi mal inglés 🙂

¡Gracias!

Me esfuerzo por encontrar una solución a esta pregunta, pero lo único que puede funcionar (creo) es usar delegates en lugar de subclasss.

Quiero decir, puedes implementar 3 classs: ClassP, ClassC1, ClassC2; vincule su storyboard con ClassP que implementa un protocolo de delegado, luego antes de presentar (en prepearForSegue ?) puede establecer el delegado de segue.destinationViewController (de tipo P) en una de sus classs ClassC1 o ClassC2, que implementa el protocolo obviamente.

Código de ejemplo para (no probado):

Clase

 @protocol ClassPDelegate <NSObject> - (void)foo; @end @interface ClassP : UIViewController ... @end 

ClassC1 y ClassC2

 #import "ClassP.h" @property (nonatomic, weak) id <ClassPDelegate> delegate; 

Clase de llamante

 ... - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"mySegue"]) { ClassC1 *classC1 = [[ClassC1 alloc] init]; [(ClassP *)segue.destinationViewController setDelegate:classC1]; } } ... 

¡Espero que funcione! ps: lo siento pero tu inglés es mejor que el mío!

Lo que quiere hacer y lo que es posible no siempre es lo mismo. Casting no convierte mágicamente a UIViewController en un controller de vista ClassA. Debe cambiar la class en el guión gráfico a ClassA o ClassB. Puede copyr y pegar la vista que haya creado en tantos otros controlleres de vista como desee. ¿Qué está mal con eso?