Archive/잡동사니

segue 반응없을때 점검해야할 것 ( 세그 선택의 실수 )

lgvv 2021. 2. 25. 16:27

prepare 사용하여 구현한 세그웨이가 반응이 없다...

왜 안되는지 한참을 고민했네 ^__^

그럼에도 불구하고 해결함. 자자 그럼 한번 볼까?

세그는 어떤 것을 연결하냐에 따라 다르게 나타나는데

테이블 뷰 구현시 bar button item 에서 세그를 연결하자 액션세그가 나타났다.

근데 테이블 뷰에서 프로토타입 셀을 연결하자 다른 선택지가 주어졌는데, 셀력션, acessory action 등 다르게 나왔다.

 

우선 내 실수를 짚고 넘어가자면 바 버튼 아이템을 연결하면서 액션세그를 연결했고, 그 아래의 프로토타입 셀을 세그 연결 시, 액션의 a와 acessory의 a만 보고 같은 걸로 판단해 acessory 를 연결하였다. ( 뒤에도 액션이니 같은걸로 착각했나보다 ^__^)

 

그럼 어떻게 수정하였는가? 

 

세그를 지웠다가 다시 연결하는 과정에서 문제를 발견하여 수정하였다.

 

그렇다면, 세그에는 어떤 차이가 있을까?

  참고 : jcsoohwancho.github.io/2019-07-28-Segue-%ED%8C%8C%ED%97%A4%EC%B9%98%EA%B8%B0/

acessory를 해결한 건 아니지만 도움이 되서 ㅎㅎ

 

어쨌든 스택오버플로를 보니 같은 경우가 있었고 

stackoverflow.com/questions/44961398/accessory-action-vs-selection-segue

 

Accessory action vs selection segue

Anyone know the difference between an accessory action and a selection segue? I linked a cell to a tableviewcontroller. Also, by linking an item button to the table view controller i get an action ...

stackoverflow.com

 

acessory는 테이블 뷰 셀의 그 오른쪽 끝에 (느낌표나 그런거 나오는거 있잖아) 그거라고 한다 ... 

즉 셀을 선택해 이동할 때에는 있어서는 셀렉션을 골라야한다.

 

세그 선택지에 대한 정보 간단히 알아보자 ( 책 402참고 )

 

show : push와 유사하여 스택에 푸시하면서 활성화되고 돌아갈 때에는 pop이 되면서 밑에 있던 기존의 뷰 컨트롤러는 활성화 된다. 이때 가장 위에 있는 컨트롤러가 활성화 된다.

 

show detail : show와 비슷하지만, push가 아니라 replace가 되는 개념이다. 즉, stack의 최상단 뷰를 교체한다.

 

present modally : 새로운 뷰 컨트롤러를 보여주는 스타일과 화면 전환 스타일을 결정하여 뷰를 모달 형태로 보여준다. 

( 모달이란 아래에서 보조창처럼 올라오는 것을 말한다 )

 

present As Popover : 현재 보이는 뷰 컨트롤러 위에 앵커를 가진 팝업 형태로 컨텐츠 뷰를 표시한다.

 

custom : 개발자가 맘대로 ~!