2016-02-11 2 views
0

Я пытаюсь использовать пользовательский segue для настройки контроллера назначения для передачи данных и инъекции зависимости.Могу ли я использовать пользовательский сеанс для не визуального назначения?

Using UIStoryboardSegue for purposes of injecting dependencies and passing data

Таким образом отделяет контроллер назначения и код конфигурации от контроллера источника.

Но в документации Apple говорится: «Объект UIStoryboardSegue - это , ответственный за визуальный переход между двумя контроллерами.

Является ли мое использование правильным способом?

+0

Вы хотите передать данные, но не показывать их? – Larme

ответ

0

Я полагаю, есть много способов решить эти проблемы. Сегэ - хороший способ передать данные, вызвав метод «prepareForSegue». Тем не менее вам не нужно изменять данные в другом контроллере. Если у вас есть какие-то параметры в экземпляре класса контроллера представления, но не показывать его, вы можете просто взять ссылку на него, используя что-то вроде:

let resultViewController = storyboard?.instantiateViewControllerWithIdentifier("result") 
          as! ResultViewController 

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

Надеюсь, это поможет,

+0

Благодарим вас за ответ. –

+0

Я использую этот segue в раскадровке. Я хочу знать лучший способ для ввода и передачи данных. Я не хочу ссылаться на ассемблер контейнера DI в исходном контроллере. Поэтому я думаю, что путь лучше. Но я не уверен, из-за документа Apple. –

+0

Не могли бы вы объяснить немного больше техники, которую вы используете? Просто смотреть на суть немного запутанно. У вас нет просмотров, отображаемых в segue? Это полностью программно без раскадровки? –

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