2011-11-13 11 views
11

Tengo un Storyboard en mi aplicación iOS 5.¿Cómo crear un diseño de UIViewController en el guión gráfico y luego usarlo en el código?

Ahí he creado varias pantallas y funciona perfectamente.

Sin embargo, hay un controlador de vista que creo en el código, no como resultado de la acción de la IU sino al final de los datos de procesamiento. Me gustaría mostrar este controlador de vista entonces, como modalViewController, pero también lo tengo diseñado en el editor de guiones gráficos.

¿Es posible? Usando las puntas lo hice así:

ResultsController *rc = [[ResultsController alloc] initWithNibName:@"ResultsController" 
                  bundle:nil]; 
[self.navigationController presentModalViewController:rc animated:YES]; 
[rc release]; 

Ahora mismo no tengo realmente a archivos nib, así que ¿cómo lo hago?

Respuesta

32

Echa un vistazo a la clase UIStoryboard. Hay un método instanciadoViewControllerWithIdentifier. Por lo tanto, debe configurar el Identificador en el Editor del Guión Gráfico para su Controlador de Vista de Controles de Resultados.

Usted puede hacer algo como esto

UIViewController *viewController = 
    [[UIStoryboard storyboardWithName:@"MainStoryboard" 
           bundle:NULL] instantiateViewControllerWithIdentifier:@"ResultsController"]; 

[self presentModalViewController:viewController animated:NO]; 
+0

Gracias! Y ... ¿hay alguna manera de establecer un botón que descarte aModalViewController directamente en el guión gráfico? Sin asociarlo a un método en el código que solo llama a este método de descartar ...? – kender

+1

No creo que funcione sin código, porque no hay conexión con ningún otro ViewControllers dentro del Storyboard. – mafis

2

En el guión gráfico:

  1. Añadir un UIViewController genérico.
  2. Con el Inspector de identidad, establezca su clase personalizada como su ResultsController.
  3. Crear un segue modal de su controlador de vista de origen a la ResultsController
+0

esto no parece funcionar :( –

0

Para Swift 4

let viewController = UIStoryboard.init(name: "MainStoryboard", bundle: nil).instantiateViewController(withIdentifier: "ResultsController") 
self.present(viewController, animated: true, completion: nil) 
Cuestiones relacionadas