fix: 뭉치 상세뷰 이름 변경뷰에서 뒤로가기 시 무한로딩 현상 픽스#64
Merged
Hidden character warning
The head ref may contain hidden characters: "fix/\ubb49\uce58-\uc0c1\uc138\ubdf0-\uc774\ub984-\ubcc0\uacbd\ubdf0\uc5d0\uc11c-\ub4a4\ub85c\uac00\uae30-\uc2dc-\ubb34\ud55c\ub85c\ub529-\ud604\uc0c1-\ud53d\uc2a4"
Conversation
giljihun
approved these changes
Feb 9, 2026
Member
giljihun
left a comment
There was a problem hiding this comment.
makeBackgroundId/makeCarabinerId/makeKeyringsId로
ID 생성 통일한 거 좋네여. 형식 불일치 문제 깔끔하게 해결 굿
| .sorted() | ||
| .joined(separator: "|") | ||
| } | ||
| .id("scene_\(background.id ?? "")_\(carabiner.id ?? "")_\(keyringDataList.map { "\($0.index)_\($0.bodyImageURL.hashValue)" }.joined(separator: "_"))_\(sceneReloadTrigger.uuidString)") |
Member
There was a problem hiding this comment.
sceneReloadTrigger 패턴 좋네요! 깔끔한 SwiftUI 강제 재생성 유도인듯요
++ ID 생성 로직이 좀 길잖아요? 제가 computed property로 한 번 가져왔습니다아
private var sceneId: String {
let bgId = background.id ?? ""
let cbId = carabiner.id ?? ""
let krIds = keyringDataList
.map { "\($0.index)_\($0.bodyImageURL.hashValue)" }
.joined(separator: "_")
return "scene_\(bgId)_\(cbId)_\(krIds)_\(sceneReloadTrigger.uuidString)"
}.id(sceneId) 이렇게만 적는건 어떨까요~~
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 PR 내용
BundleDetailView에서 BundleEditView 또는 BundleNameEditView로 진입 후 백버튼으로 돌아올 때 무한 로딩에 걸리는 현상 발생
BundleNameEditView의 경우, 백버튼을 눌렀을 때와 수정 완료 버튼을 눌렀을 때 두 케이스 모두 무한로딩 발생함
재현 방법:
BundleDetailView → BundleNameEditView → 백버튼or완료버튼 → 무한 로딩 ⭕️
BundleDetailView → BundleEditView → 백버튼 → BundleNameEditView → 백버튼 → 무한 로딩 ❌
🔍 원인 분석
1. ID 형식 불일치 문제
2. ID 업데이트 타이밍 문제
MultiKeyringSceneView.onAllKeyringsReady에서updateLastConfigIds()호출loadBundleData()에서도lastConfigIds업데이트 시도3. EditView 백버튼의 누락
4. EditView에서 백버튼으로 돌아올 때 Scene 재생성 문제
🛠️ 해결 방법
1. ID 생성 로직 통일
모든 화면에서 makeBackgroundId(), makeCarabinerId(), makeKeyringsId() 사용:
2. lastConfigIds 업데이트 단일화
onAllKeyringsReady에서의updateLastConfigIds()호출을 제거하고,loadBundleData()에서만 업데이트3. EditView 백버튼 처리
4. Scene 강제 재생성
Scene을 생성할 때 id에 따라 생성하므로,
sceneReloadTrigger를 추가하여loadBundleData()완료 시 Scene이 항상 재생성되도록 보장📱 스크린샷 (UI 변경 시)
ScreenRecording_02-09-2026.16-1.mov
ScreenRecording_02-09-2026.17-1.mov
🔗 관련 이슈
#23
✅ 체크리스트