Programming/Mac & iOS

[iOS] Segue의 활용/종류

MB Brad KWON 2015. 11. 28. 15:39

Segue란 무엇인가?


Segue는 사전적 의미로는 음악에서 악장에서 다음 악장으로 끊기지 않고 넘어가는 것을 의미한다. 즉 '계속됨', '지속되다'의 의미를 지진다. 그럼 iOS 플랫폼에서의 Segue는 무엇인가. 필자가 알기론 iOS Segue가 등장한 시점은 스토리보드가 등장했을 때로 기억한다. 스토리보드가 등장하면서 일전에 사용하던 ViewController간의 view transition push/pop이나 presentation 등의 동작을 코드에서 뿐만아니라 스토리보드를 동하여 정의할 수 있게 되었다. 앞서 말한 스토리보드상의 view transition의 구현체를 Segue라고 부른다.




Segue의 종류


Segue는 개발자가 커스터마이징한 것을 제외하게 되면 크게 4가지로 나눌수 있다. Show, Show Detail(iPad만 해당), Present Modally, Popover Presentation(iPad만 해당) 등의 4가지이다.



Show


Show는 Navication Controller에서 push/pop의 push를 의미한다. Navigation Controller의 스택 상에 Destination ViewContoller를 삽입하여 쌓게 된다. 참고로 iOS7부터 등장한 'UINavigationControllerDelegate'을 사용하면 보다 다양한 Transition effect를 구현할 수 있다.



Show Detail(iPad만 해당)


UISplitViewController를 사용할 때, 사용하는 Segue이다. 아이패드에서 화면을 가로로 눕히면 등장하는 Detail View상에 ViewController를 밀어 넣게 된다. Navigation Contoller의 스택에는 전혀 영향을 주지 않는다. 아래의 이미지의 오른 쪽 View 영역에 해당된다.




Present Modally


일전의 presentViewController: 메소드와 동일한 동작을 하게된다. 옵션에 따라 ViewController를 띄우는 애니메이션에 변화를 줄 수 있다. Navigation Controller의 스택에는 전혀 영향을 주지 않는다. 단, 'Modally'라는 단어에서 알 수 있듯이 이미 Presentation을 한 ViewController에서 다른 ViewContller를 presentation할 수 없다. Show에서와 같은 맥락으로 'UIViewControllerTransitioningDelegate'를 사용하면 보다 다양한 Presantation effect를 구현할 수 있다.



Popover Presentation(iPad만 해당)


Show Detail과 같이 iPad에서만 볼 수 있는 View Transition이다. 작은 팝업 뷰 혹은 context menu 형식으로 ViewController를 띄우는 방법이다. 아이폰에서도 사용은 가능하지만 단순한 Modal View처럼 표시된다.