Так как iOS 6, для разворачивания иерархии сцены доступны разматывающиеся сегменты. Я пытаюсь принять решение о более чистом/улучшенном/предпочтительном/более ремонтопригодном методе передачи данных в родительский контроллер представления. Есть несколько вопросов, которые касаются этого с технической точки зрения (например, "если у меня есть необходимость, мне еще нужен делегат" ), но я не могу найти много того, что касается вопросов плюсов и минусов.
Вариант 1: используйте делегат.
-  Выполнено путем передачи в родительском контроллере представления в качестве делегата, придерживающегося протокола.
- Ребенок вызывает метод протокола для возврата данных.
- Если для родителя требуется проверка данных, возвращаемое значение /dict требуется, чтобы разрешить ребенку обрабатывать ошибки.
 
- Накладные расходы: определение протокола и один метод в родительском (для проверки и получения данных).
Вариант 2: используйте разматывающий сегмент
-  Выполнено, вызвав разворот segue от ребенка.
-  Ребенок добавляет segue на свою сцену, перетаскивая кнопку или раскадровку непосредственно в Exitи называя segue, так что это может быть сperformSegueWithIdentifier:sender
-  Parent реализует returnFromSegueName(пользовательский метод, связанный с этим сеансом), чтобы захватить данные из дочернего элемента.
-  Проверка данных, хотя может быть реализована только путем реализации canPerformUnwindSegueAction:fromViewController:withSender- Ошибка проверки данных потребует другого свойства для дочернего элемента, поскольку этот метод принимает только значение BOOL для возвращаемого значения.
 
 
-  Ребенок добавляет segue на свою сцену, перетаскивая кнопку или раскадровку непосредственно в 
- Накладные расходы: два метода, дополнительное свойство и махинации раскадровки.
В целом, делегаты чувствуют себя как более чистый путь, но, возможно, также устарели. Неужели я ошибаюсь, чтобы наклоняться в этом направлении?
