2013-12-19 3 views
2

Сценарий:Несколько перетекает из другого контроллера вид на один вид контроллера

У меня есть пять различных контроллеров отображения и все имеющие кнопку меню в левом верхнем углу.

Я подключил эти пять кнопок меню к тому же MenuViewController через пользовательский segue, используя раскадровку.

Проблема:

  1. Даже с регулятором током 5 вида с пользовательским Segue прикрепленного к MenuViewController раскадровке выглядит очень некрасиво, я попытался расположить их по-разному , но есть много других контроллеров просматривать и других segues вокруг, кроме этих 5, которые не позволяют мне сделать раскадровку чистой и иметь лучшую видимость, чтобы увидеть поток приложений.

  2. В будущем будет больше контроллеров представления с кнопкой меню того же типа в левом верхнем углу, и в настоящее время я работаю на первых нескольких экранах.

Solutions я знаю:

  1. Используйте метод раскадровки instantiateViewControllerWithIdentifier получить MenuViewController и показать их вручную.

    Причина я не понравилось: Пользовательские Segue делает это лучший способ со всей анимации и добавив вид с видом на код контроллера на одном месте. Здесь мне нужно будет написать метод нажатия кнопки в каждом контроллере представления с помощью пользовательского кода типа segue, чтобы показать анимацию.

  2. Используйте несколько раскадровки с одним рассказчиком на модуль.

    Не знаете, как использовать его для этого случая, поскольку все они являются частью того же модуля, и я новичок в раскадровки.

Что такое лучший способ справиться с этим делом? есть ли лучшее решение, которое мне не хватает? Что такое чистый подход, который может достичь этого с лучшей видимостью потока приложения без большого повторения кода и т. Д.

Любая помощь приветствуется.

+0

Эти 5 контрольных контроллеров, они очень разные, или они могут быть объединены в один в раскадровке? Конечно, с некоторым дополнительным кодом инициализации. – Macondo2Seattle

+0

Нет, они совершенно разные –

ответ

0

[self performSegueWithIdentifier: @ "SEGUE_IDENTIFIER" отправитель: self];

+1

, чтобы использовать "performSegueWithIdentifier" вам нужно segues на месте в раскадровке. И моя проблема - это много этих переходов. Нет смысла их вручную называть –

2

Я думаю, что вы просто сталкиваетесь с ограничениями раскадровки в своем проекте. Причина использования раскадровки (в отличие от нескольких xib-файлов или выполнения всего кода) - это, прежде всего, легко создавать и визуализировать переходы между контроллерами представлений (aka segues) во время разработки. Если у вас так много переходов, что они становятся запутанным беспорядком на экране, то, очевидно, подход к раскадровке - это больше проблем, чем того стоит. Я бы подумал разобраться с xibs, особенно если вы ожидаете, что ваше приложение станет еще более сложным в будущем.

+0

Спасибо за ответ. Да, использование xibs решит все беспорядки. Поскольку у меня нет лучшего решения, я предпочитаю использовать «instantiateViewControllerWithIdentifier». –

Смежные вопросы