1. 메인 앱 타겟의 Signing & Capabilities로 이동하여 App Groups 기능을 추가합니다.
2. + 버튼을 클릭하여 새 그룹을 추가하거나 이전에 만든 그룹을 선택하세요.
3. 위젯에 대해서도 1번과 2번 단계를 반복하세요.
4. UserDefault(suiteName: _ ) 을 사용하여 앱(위젯과 앱) 간의 데이터를 교환할 수 있게 됩니다.
- suiteName 은 App Group 에서 설정한 Container 의 이름과 반드시 같아야 합니다.
/// 현재 카테고리 저장하기
func saveCurrentCategoryToUserDefault() {
if let sharedDefaults = UserDefaults(suiteName: Constants.appGroupIdentifier) {
sharedDefaults.set(currentCategory.rawValue, forKey: Constants.currentCategoryKey)
sharedDefaults.synchronize()
WidgetCenter.shared.reloadAllTimelines()
}
}
다음은 위젯에서 저장한 데이터를 불러오는 코드입니다.
func fetchCurrentIndex() -> Int {
if let sharedDefaults = UserDefaults(suiteName: Constants.appGroupIdentifier),
let category = sharedDefaults.string(forKey: Constants.currentCategoryKey) {
return sharedDefaults.integer(forKey: category)
} else {
return 0
}
}
'SwiftUI' 카테고리의 다른 글
SwiftUI - 소켓 통신 (5) | 2024.11.12 |
---|---|
SwiftUI - 커스텀 카메라 (0) | 2024.11.11 |
WidgetKit 에서 SwiftData 로 저장된 데이터 사용하기 (0) | 2024.10.22 |
SwftUI - ShareLink 공유 기능 사용하기, 공유 인터페이스 (1) | 2024.10.22 |
SwiftUI - 드래드 기능 On Off 할 수 있게 만들기 (0) | 2024.10.11 |