[iOS] : CHAPTER 04 - 메뉴얼 세그웨이와 액션 세그웨이 차이점 질문
Closed this issue · 3 comments
[iOS] : CHAPTER 04 - 메뉴얼 세그웨이와 액션 세그웨이 차이점 질문
관련 챕터: 4.5세그웨이를 이용한 화면 전환(p.213)
시작점이 뷰컨트롤러이면 메뉴얼 세그웨이, 버튼 등의 트리거가 발생할 수 있는 지점이라면 액션 세그웨이입니다. 그런데 책에 나와있는 예시를 보면, 메뉴얼세그웨이를 위한 버튼을 추가하고, 그 안에 세그웨이 코드를 작성하는데요. 이렇게 되면 결국 버튼을 누르는 액션
을 취했을 때 세그웨이를 통해 화면을 전환하게 되는 것 아닌가요?
예를 들어 어떤 액션이 취해졌을 때, 무조건 같은 화면을 전환하는 게 아니라 사용자의 상태 별로 다른 화면을 보내준다던지, 특정 상태일 때에만 화면 전환 함수가 동작하도록 한다던지 하는 등의 처리가 필요할 때 사용하는 건가요? 🤔
🙋 언제 메뉴얼을, 언제 액션을 사용하는 것인지 궁금합니다!
개인적으로 액션 세그웨이와 매뉴얼의 차이점은 식별자 필수와 세그웨이시 커스텀의 여부라고 생각해요
버튼을 통해 액션 세그웨이 방식으로 화면을 전환할 때 식별자가 필수가 아니지만
매뉴얼 세그웨이 performSegue(withIdentifier:,sender:)
메소드를 사용하기 위해서는 식별자가 필수로 지정을 해야 해당 세그웨이를 실행할 수 있고
performSegue(withIdentifier:,sender:)
메소드 직후 prepare(for segue: UIStoryboardSegue, sender: Any?)
호출이 되며 클로저함수처럼 사용 가능하다고 생각하고있어요
액션 세그웨이에서의 액션은 사용자가 발생시키는 이벤트라는 범위로 한정짓는 것이 아닐까 생각합니다. 그에반해 메뉴얼 세그웨이는 사용자의 액션 뿐만 아니라 completion handler 혹은 viewDidLoad()
와 같은 다양한 경로로 performSegue()
를 직접(='메뉴얼 하게') 동작시키는 것이기 때문에 책에 나온 버튼은 그 예시중 하나 아닐까 하는 생각이 듭니다!
언제 메뉴얼을, 언제 액션을 사용하는지 그 예시는 정확하게 모르겠으나, 만일 "오직 사용자의 이벤트로만 세그웨이를 동작시키겠어!" 라는 의도만 있다면 액션 세그웨이를, 그 뿐 아니라 "다른 상황에서도 세그웨이를 동작시키겠어!" 라는 의도가 있다면 메뉴얼 세그웨이를 사용하지 않을까 하는 생각이 듭니다:)
https://boidevelop.tistory.com/25 <-- 여기 블로그에 설명이 잘 되어있는 것 같아요. 한 번 참고해보세요!