Я просто хотел добавить что-то к тому, что сказал @Scott. Его ответ, безусловно, самый простой и самый распространенный способ сделать это сейчас с помощью раскадровки, iOS 7 и 8 ... (и вскоре, 9).
Определенное добавление контроллера вида к раскадровке и вложение его, как описано в @Scott, - это правильный путь.
Затем просто добавьте segue, перетащив управление из контроллера источника на цель (тот, который вы хотите показать модально), выберите «Present Modally», когда появится маленький вид с вариантами выбора типа segue , Наверное, хорошо дать ему имя (в приведенном ниже примере я использую «presentMyModalViewController»).
Единственное, что мне было нужно, это отсутствие случая @ Скотта, когда вы хотите фактически передать некоторые данные этому модульно представленному контроллеру представления, встроенному в контроллер навигации.
Если вы захватите segue.destinationViewController, это будет UINavigationController, а не контроллер, встроенный в UINavigationController.
Таким образом, чтобы получить на встроенный контроллере представления внутри навигационного контроллера, вот что я сделал:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"presentMyModalViewController"]) {
// This could be collapsed, but it's a little easier to see
// what's going on written out this way.
// First get the destination view controller, which will be a UINavigationController
UINavigationController *nvc = (UINavigationController *)segue.destinationViewController;
// To get the view controller we're interested in, grab the navigation controller's "topViewController" property
MyModalViewController *vc = (EmailReceiptViewController *)[nvc topViewController];
// Now that we have the reference to our view controller, we can set its properties here:
vc.myAwesomeProperty = @"awesome!";
}
}
Надеется, что это помогает!
Спасибо, я ценю объяснение, поэтому я знаю, что я сделал неправильно. –
Добро пожаловать! – BoltClock
Если вы используете раскадровку, для этого не требуется никакого кодирования. Хорошее решение! – Jelle