2013-10-04 35 views
5

Attualmente, quando viene toccato un pulsante, viene visualizzato un UIModalPresentationSheet. Mi piacerebbe aggiungere una barra di navigazione nella parte superiore di questo quando scorre. Ho provato un sacco di cose ma niente sembra funzionare. Ecco cosa sto provando e restituisce questo errore.Controller di navigazione nella vista modale

AthleteAdd *addAthlete = [self.storyboard instantiateViewControllerWithIdentifier:@"addAthlete"]; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addAthlete]; 
    //[self.navigationController pushViewController:addAthlete animated:YES]; 

    addAthlete.delegate = self; 
    addAthlete.modalPresentationStyle = UIModalPresentationFormSheet; 
    // UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addAthlete]; 
    [self presentViewController:navigationController animated:YES completion:nil]; 

Ma lo spinge in modo modale e senza la maschera del modulo di presentazione modale. Come posso fare in modo che il controller di navigazione sia dimensionato correttamente?

risposta

12

tenta di modificare il codice in questo modo:

AthleteAdd *addAthlete = [self.storyboard instantiateViewControllerWithIdentifier:@"addAthlete"]; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addAthlete]; 

    addAthlete.delegate = self; 
    navigationController.modalPresentationStyle = UIModalPresentationFormSheet; 


    [self presentViewController:navigationController animated:YES completion:nil]; 

Perché qui, si tenta di presentare addAthlete da se stessa. Quindi ottieni questo errore.

+0

Questo funziona, ma non è più un modalsheetpresentation .. –

+0

Date un'occhiata alla mia modifica;) –

4

È necessario presentare navigationController in cui è stato inserito l'addAthlete.

[self presentViewController:navigationController animated:YES completion:nil]; 
0

Si sta presentando dal controllore di vista corrente stesso.

Provare qualcosa di simile,

[self dismissViewControllerAnimated:YES completion:^{ 
    [self.parentViewController presentViewController: navigationController animated:YES completion:nil]; 
}]; 
Problemi correlati