2011-11-13 9 views
11

Ho uno storyboard nella mia applicazione iOS 5.Come creare un layout di UIViewController nello storyboard e quindi utilizzarlo nel codice?

Qui ho creato un numero di schermi e funziona perfettamente.

Tuttavia c'è un controller di vista che creo nel codice, non come risultato dell'azione dell'interfaccia utente ma alla fine dell'elaborazione dei dati. Mi piacerebbe mostrare questo controller vista, come un modalViewController, ma anche averlo progettato nell'editor storyboard.

È possibile? Utilizzando i pennini ho fatto in questo modo:

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

In questo momento in realtà non hanno un file di pennino, quindi come posso fare?

risposta

32

Dai un'occhiata alla classe UIStoryboard. Esiste un metodo instantiateViewControllerWithIdentifier. Quindi è necessario impostare Identfier all'interno dell'Editor storyboard per ViewController ResultsController.

si può fare qualcosa di simile

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

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

Grazie! E ... c'è un modo per impostare un pulsante che dovrebbe eliminareModalViewController direttamente sullo storyboard? Senza associarlo a un metodo in codice che chiama solo questo metodo ... respingere? – kender

+1

Non penso che funzioni senza codice, perché non c'è connessione con nessun altro ViewController all'interno dello Storyboard. – mafis

2

Nel vostro storyboard:

  1. Aggiungi un UIViewController generico.
  2. Con Identity Inspector, imposta la sua classe personalizzata come ResultsController.
  3. Creare un segue modale dalla visualizzazione del controller di origine al ResultsController
+0

questo non sembra funzionare :( –

0

Per Swift 4

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