2015-04-30 9 views
5

Sono davvero confuso circa la relazione tra storyboard e spingere a viste a livello di programmazione.Confuso su storyboard e spinta a livello di codice ios Obiettivo C

Sto usando SWRevealViewController per visualizzare un menu di voci.

Se spingo allo storyboard utilizzando

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"]; 
[self presentModalViewController:controller animated:YES]; 
[self.navigationController pushViewController:controller animated:YES]; 

Tutte le informazioni nel mio storyboard viene visualizzato, ma non v'è alcun pulsante "indietro" al SWRevealViewController.

Se spingo al controller della vista utilizzando

PhotosViewController *frontViewController = [[StreamScreen alloc] init]; 
    newFrontController = [[UINavigationController alloc] initWithRootViewController:frontViewController]; 

Allora posso vedere tutto quello che ho aggiunto a livello di codice, ma nulla dallo storyboard.

La mia domanda è: come posso accedere a cose dallo storyboard e cose aggiunte a livello di codice.

risposta

3

se si presenta il controller della vista, quindi non fornirà il pulsante di ritorno predefinito perché quando si presenta un controller non verrà aggiunto nello stack di navigazione di NavigationController in modo che non fornisca tale opzione.

Se si desidera che il controller di spinta non utilizzi presentModalViewController.

Prova come qui di seguito

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"]; 
[self.navigationController pushViewController:controller animated:YES]; 

e se si desidera presentare controllore quindi creare manualmente aggiungere un pulsante indietro come abbiamo predefinito nella navigazione pulsante indietro e su di essa la scrittura click qui sotto il codice per chiudere il controller.

[self dismissViewControllerAnimated:YES]; 

Spero che questo ti aiuti.

+0

Grazie per questo codice. Ora sono un passo avanti. Ora vedo il mio schermo per una frazione di secondo e poi lo schermo diventa nero. Qualche idea del perché questo? Grazie ancora. – AB567

+0

devi vedere il tuo codice per rispondere meglio. Il motivo potrebbe essere: Spingi sul secondo controller due volte –

+1

e se la mia risposta risolve la tua domanda postata. per favore contrassegnalo come risposta corretta. –

Problemi correlati