본문 바로가기
iOS

[SwiftUI] List swipeAction을 활성화 한 상태에서 다른 뷰로 전환 시 리스트 멈춤 현상

by jaemjung 2022. 2. 22.

view간에 EditMode가 공유되어서 일어났던 현상.

SwipeAction은 실제로 EditMode를 토글하지는 않지만, edit버튼을 이용해 swipeAction을 닫아줄 요량으로 swipeAction 진행 중 isEditing을 True값으로 바꿈. 이래서 EditButton이 스와이프 액션 활성화 중 상태가 변하는 것.

 

현재 뷰 구조는 Navigation 등을 이용하는 것이 아니라, 한 뷰에서 state Bool 값의 변화에 따라 if 문으로 뷰를 그렸다 지웠다 하는데,

두 뷰 사이에 List의 EditMode가 공유되는 현상이 일어난 것. 아마 상위 뷰의 EditMode를 하위 뷰들이 상속하는 듯 하는데...

따라서 swipeAction을 토글 한 상태에서 다른 뷰로 전환 시, 이 editMode가 isEditing으로 바뀐채 넘어가서 다른 뷰의 정상적인 조작이 불가능 했던 것.

 

각 뷰에 개별적으로 EditMode를 생성한 후 List에 Environment로 넣어주니 해결했음

댓글