Volevo solo aggiungere qualcosa a ciò che ha detto @Scott. La sua risposta è sicuramente il modo più semplice e più accettato per farlo ora con Storyboard, iOS 7 e 8 ... (e presto, 9).
Sicuramente l'aggiunta di un controller di visualizzazione allo Storyboard e l'incorporamento come descritto da @Scott è la strada giusta.
Quindi, aggiungi semplicemente il segue trascinando il controllo dal controller della vista di origine alla destinazione (quello che vuoi mostrare in modo modale), seleziona "Presenta in modo modale" quando appare la piccola vista con le scelte per il tipo di segue. Probabilmente va bene anche dargli un nome (nell'esempio sotto uso "presentMyModalViewController").
Una cosa di cui avevo bisogno che mancava è che il caso di @ Scott è quando si desidera effettivamente passare alcuni dati a quel controller di visualizzazione presentato in modo modale che è incorporato nel controller di navigazione.
Se prendi il segue.destinationViewController, sarà un UINavigationController, non il controller che hai incorporato in UINavigationController.
Quindi, per accedere al controller di visualizzazione incorporato all'interno del controller di navigazione, ecco cosa ho fatto:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"presentMyModalViewController"]) {
UINavigationController *nvc = (UINavigationController *)segue.destinationViewController;
MyModalViewController *vc = (EmailReceiptViewController *)[nvc topViewController];
vc.myAwesomeProperty = @"awesome!";
}
}
Spero che sia di aiuto!