iOS Custom View no se llama a los methods

Tengo un controller de vista CaptureDataVC y una vista personalizada KeyboardView .

KeyboardView tiene todas las funciones de inicio necesarias para funcionar según sea necesario:
-(id)initWithCoder:(NSCoder *)aDecoder y -(id)initWithFrame:(CGRect)frame

En el file xib de CaptureDataVC tengo una UIView con la class personalizada KeyboardView .

La vista se ve bien. El problema es que no puedo llamar a ninguno de los methods en KeyboardView (comstack y no recibo ningún error, pero no se llaman los methods).

Entonces, básicamente, no puedo hacer esto:

CaptureDataVC.h

 @property (nonatomic,retain) IBOutlet KeyboardView *keyboardView; 

CaptureDataVC.m

 [self.keyboardView foo]; 

KeyboardView.m

 -(void) foo { NSLog(@"Hello World!"); //Won't print anyting } 

Algunas ideas ?

Editar:

introduzca la descripción de la imagen aquí

La class personalizada se establece en la vista azul

Bueno, las primeras preguntas son:

  1. Es el [self.keyboardView foo]; ¿Corrido en línea? Pon un punto de interrupción allí.
  2. Si es así, ¿ self.keyboardView no es nil? Cuando el depurador se haya detenido en el punto de interrupción anterior, escriba po self.keyboardView en el depurador para comprobar.

Un error clásico es asumir que self.someView siempre está configurado. En realidad, no lo hará, antes de que se hayan cargado las vistas y los puntos de venta. Consulte las documentaciones de viewDidLoad y isViewLoaded .

Compruebe si la configuration de la propiedad de salida de KeyboardView: si la propiedad es nula, no sucederá nada

No es necesario inicializar la vista personalizada manualmente ya que se agrega en el controller de vista. Todo lo que tiene que hacer es verificar dónde ha estado llamando a su método de vista personalizado. Debería llamarse después de que se cargue su vista. es decir, viewDidLoad o viewWillAppear method.

En CaptureDataVC.m debe asignar la memory al object como:

 self.keyboardView=[[KeyboardView alloc]init]; 

y la llamada a su método como:

 [self.keyboardView foo]; 

funcionará.

puede lograr el resultado deseado con los delegates.implicar a los delegates de la vista de keyboard en su viewcontroller.