view간에 EditMode가 공유되어서 일어났던 현상.
SwipeAction은 실제로 EditMode를 토글하지는 않지만, edit버튼을 이용해 swipeAction을 닫아줄 요량으로 swipeAction 진행 중 isEditing을 True값으로 바꿈. 이래서 EditButton이 스와이프 액션 활성화 중 상태가 변하는 것.
현재 뷰 구조는 Navigation 등을 이용하는 것이 아니라, 한 뷰에서 state Bool 값의 변화에 따라 if 문으로 뷰를 그렸다 지웠다 하는데,
두 뷰 사이에 List의 EditMode가 공유되는 현상이 일어난 것. 아마 상위 뷰의 EditMode를 하위 뷰들이 상속하는 듯 하는데...
따라서 swipeAction을 토글 한 상태에서 다른 뷰로 전환 시, 이 editMode가 isEditing으로 바뀐채 넘어가서 다른 뷰의 정상적인 조작이 불가능 했던 것.
각 뷰에 개별적으로 EditMode를 생성한 후 List에 Environment로 넣어주니 해결했음
'iOS' 카테고리의 다른 글
[refactoring] <한들> 바로잡기 - 0. 불필요한 의존성 해제 (0) | 2023.03.06 |
---|---|
[AVFoundation] observer로 AVPlayer의 상태 확인하기 (0) | 2023.02.22 |
[SwiftUI] SwiftUI에서 AVPlayerLayer 사용하기 (0) | 2023.02.20 |
[RealmSwift] Realm에 기존에 사용중인 struct 저장 및 불러오기 (0) | 2022.05.08 |
[firebase] firestore에서 받은 데이터 쉽게 decode하기 (0) | 2022.03.27 |
댓글