STORYBOARD EXCEPTION – Storyboard no contiene un controller de vista con identificador

Actualmente estoy desarrollando una aplicación de iOS para iPhone y iPad. Estoy intentando mostrar un NavigationController para hacer un module que muestre files. En iPhone funciona bien, pero no puedo hacerlo funcionar en iPad.

Estoy recibiendo el siguiente error:

'Storyboard (<UIStoryboard: 0x919b200>) doesn't contain a view controller with identifier 'FilesNavigation'' 

y este es el código:

 case 10: // Files { UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"FilesNavigation"]; FilesViewController *filesViewController = [storyboard instantiateViewControllerWithIdentifier:@"Files"]; [navigationController pushViewController:filesViewController animated:YES]; self.slidingViewController.topViewController = navigationController; break; } 

Y en mi storyboard ya he configurado el ID del Storyboard para el controller de navigation.

Clase personalizada

Clase: UINavigationController

Identidad

ID del guión gráfico: FilesNavigation

Utilicé este código para otro caso en el switch / case block para otro module y también funciona para iPad, es la primera vez que tengo este error.

Espero que cualquiera pueda ayudarme con esto, gracias de antemano.

Lo descubrí, el problema era que Storyboard no se estaba actualizando en el dispositivo.

  1. Desinstalar la aplicación del simulador / iPhone / iPad
  2. Producto> limpiar
  3. Comstackr y ejecutar

Como se indica en la respuesta de @ T0m_Twt en esta pregunta

En el panel derecho, en la sección del inspector de identidad, proporcione un ID de storyboard a su controller de navigation.

Tomé una captura de pantalla para ti

introduzca la descripción de la imagen aquí

Aquí hay otro caso:

Hay dos storyboards localizados. Solo uno de ellos tiene el controller de vista que desea.

Por casualidad, ¿tienes un storyboard para iPhone y otro para iPad? Si lo hace, entonces el iPad podría no tener un storyboard con ese identificador. También cuando se ejecuta en un iPad, establezca un punto de interrupción en su código y verifique qué es su object "storyboard".

Utilizo una categoría en UIStoryboard que me dará los storyboards para cada plataforma.

Puedo usar [UIStoryboard storyboardHome] y eso determinará si necesita un iPad o iPhone específico y me lo devolverá. También me aseguro de que mi storyboard siga el nombre apropiado. Entonces tendría Home_iPad y Home_iPhone.

TL; DR: borra todo y elimina la versión anterior de la aplicación también, si la hay.

Puede parecer una locura, pero supongamos que si ha cambiado el nombre del objective que también cambió el nombre del package, es posible que tenga la versión antigua y la nueva de la aplicación instalada en el simulador / dispositivo, y esto podría causar problemas para que la instancia de UIStoryboard fallase para instanciar algunos controlleres de vista, lo que eventualmente podría causar el problema descrito en la pregunta. Para resolverlo, debe eliminar todas las aplicaciones relacionadas o simplemente reiniciar el simulador / dispositivo.