Как перейти к одному и тому же контроллеру из другого представления?

У меня есть контроллер просмотра вкладок с несколькими вкладками. Одна вкладка ведет к представлению «игроков» через навигационный контроллер. Вторая вкладка ведет к представлению «Настройки». В представлении настроек есть кнопка для выбора игрока «по умолчанию», поэтому он пытается перейти к представлению игроков через отдельный навигационный контроллер.

Диаграмма:

Players Tab -> Navigation Controller "A" -> Players View Controller
Settings Tab -> Navigation Controller "B" (w/named segue) -> Players View Controller

Представление вкладки «Игроки» не имеет «именованного» перехода, поскольку оно связано с контроллером вкладок. Контроллер навигации по вкладке настроек имеет именованный переход.

Однако теперь, когда я выбираю вкладку «Игроки», представление пусто! Панель навигации вверху есть с вкладками, но это все. В качестве теста я удалил связь между Nav «B» и Players View, и теперь вкладка «Игроки» снова работает.

Мне не хватает фундаментальной проблемы здесь, но я не знаю, что.

Любые идеи приветствуются.


person Christopher    schedule 19.06.2012    source источник


Ответы (1)


Я нашел аналогичный вопрос с ответом, который мне нужен.

Как создать Макет UIViewController в раскадровке, а затем использовать его в коде?

Вот соответствующий код:

UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"ResultsController"];
[self presentModalViewController:viewController animated:NO];

Я новичок в раскадровках, поэтому я не знал, что этот метод существует. Этот метод решает проблему, которую я описал выше. Сначала я пытался перейти через навигационный контроллер к представлению, в котором уже был установлен переход. С решением здесь я могу просто создать экземпляр существующего представления, используя идентификатор.

Я все еще думаю, что должен быть способ попробовать другой переход, чтобы можно было использовать «выполнить переход». Тем не менее, я снова иду вперед.

person Christopher    schedule 19.06.2012