У меня есть viewController, который обычно (чаще всего) доступен с помощью push-сегмента. Этот viewController должен быть встроен в UINavigationController. Как правило, это не проблема. Нажимной сегмент управляет нажатием на viewController, и поэтому viewController имеет UINavigationController.
Моя проблема в том, что в нескольких случаях я хотел бы представить этот же самый точный viewController, используя модальный переход. Когда я это делаю, viewController не встроен в navigationController. Есть ли способ сделать это с помощью segues?
Я знаю, что это можно сделать исключительно в коде без segues, создав UINavigationController, установив rootView как viewController, а затем представив это как модально. Это можно сделать с помощью следующего кода:
MyViewController *viewController = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentModalViewController:navController animated:YES];
Но как мне сделать то же самое, но использовать Segues?
Update
Для большей ясности, вот какой-то код, чтобы дополнить то, как я использовал принятый ответ в методе prepareForSegue.
При использовании Modal Segue
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isEqualToString:@"Modal to MyVC"])
{
UINavigationController *nav = [segue destinationViewController];
MyViewController *vc = [nav topViewController];
//setup vc
}
}
При использовании Push Segue
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isEqualToString:@"Push to MyVC"])
{
MyViewController *vc = [segue destinationViewController];
//setup vc
}
}