En la publicación Using initWithNibName changes absolutely nothing, muestra dos usos de la misma definición de View Nib, en el primer caso, simplemente llama a alloc/init y el segundo, especifica initWithNibName.¿Cuándo debo llamar - [UIViewController initWithNibName: bundle:]?
Por lo tanto, si bien esto siempre funciona:
MyViewController *vctrlr = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; [self.navigationController pushViewController:vctrlr animated:YES]; [vctrlr release];
Los siguientes obras para todos los controladores de Vista que he heredado, pero no la mía!
TheirViewController *vctrlr = [[TheirViewController alloc] init]; [self.navigationController pushViewController:vctrlr animated:YES]; [vctrlr release];
nuevo en la programación iOS, heredé algo de código. Todas las vistas de los Controladores de Vista están definidas en IB, pero hubo una asignación/creación incoherente de esos controladores de vista. Creé un nuevo Controlador de Vista y XIB, pero no funciona a menos que use initWithNibName (se cuelga cuando presiono el controlador de vista en el Controlador Nav). No puedo decir cómo mi controlador de vista es diferente a los demás ... ¿alguna pista? Pude borrar el uso de initNibName para todos los otros controladores de vista en la aplicación excepto la mía.
En general es bueno para especificar el nombre de la SEMILLA ya que en realidad abstrae la vista desde la viewcontroller. Por ejemplo, si tiene un controlador que tiene vistas ligeramente diferentes en función de algunas condiciones, puede simplemente cargar en distintas puntas como sus vistas. – Rexeisen
¿Ha implementado el método 'loadView' en' vctrlr'? –
'loadViews' no se implementan en ningún caso. – wrlee