WidgetKit - UserDefault 로 위젯과 앱 데이터 공유하기
·
SwiftUI
1. 메인 앱 타겟의 Signing & Capabilities로 이동하여 App Groups 기능을 추가합니다. 2. + 버튼을 클릭하여 새 그룹을 추가하거나 이전에 만든 그룹을 선택하세요.3. 위젯에 대해서도 1번과 2번 단계를 반복하세요. 4. UserDefault(suiteName: _ ) 을 사용하여 앱(위젯과 앱) 간의 데이터를 교환할 수 있게 됩니다. - suiteName 은 App Group 에서 설정한 Container 의 이름과 반드시 같아야 합니다./// 현재 카테고리 저장하기func saveCurrentCategoryToUserDefault() { if let sharedDefaults = UserDefaults(suiteName: Constants.appGroupIdentifi..
WidgetKit 에서 SwiftData 로 저장된 데이터 사용하기
·
SwiftUI
1. 메인 앱 타겟의 Signing & Capabilities로 이동하여 App Groups 기능을 추가합니다. 2. + 버튼을 클릭하여 새 그룹을 추가하거나 이전에 만든 그룹을 선택하세요. 3. 위젯에 대해서도 1번과 2번 단계를 반복하세요.  4. SwiftData 모델을 포함하는 모든 Swift 파일이 앱 타겟과 위젯 타겟 모두에 추가되었는지 확인하세요. 5. 위젯에 modelContainer() 수정자를 추가하세요. 예를 들어, StaticConfiguration 또는 AppIntentConfiguration에 추가할 수 있습니다.
SwftUI - ShareLink 공유 기능 사용하기, 공유 인터페이스
·
SwiftUI
iOS 16.0 부터는 ShareLink 를 제공하여 SwiftUI 자체적으로 공유 Sheet 를 사용할 수 있게 되었습니다 iOS 16 이전에는 UIViewControllerRepresentable 이 존재하여 UIViewControllerRepresentable 로 대체 구현이 가능했습니다.  ShareLink 간단한 사용법var body: some View { ShareLink(item: URL(string: "https://developer.apple.com/xcode/swiftui/")!) ShareLink(item: URL(string: "https://developer.apple.com/xcode/swiftui/")!) { Label("Share", image: "My..
SwiftData - A default value requires a fully qualified domain named value, Model 프로퍼티에 Enum 사용하기
·
SwiftUI/에러해결
Enum 타입의 변수를 만들어 사용하려 했지만A default value requires a fully qualified domain named value 에러가 발생하였습니다. 해결방법은 바로 타입을 Category 으로 선언하였지만 이후 값에서도 어떤 Enum 인지 직접적으로 명시해줘야 합니다.@Modelclass Quote: Decodable, Identifiable { var id: UUID = UUID() var quote: String = "" var author: String = "" var category: Category = Category.unknown
SwiftData - FetchDescriptor 에러 (Cannot convert value of type 'PredicateExpressions.Equal<...
·
SwiftUI/에러해결
Cannot convert value of type 'PredicateExpressions.Equal, UUID>, PredicateExpressions.KeyPath, UUID>>' to closure result type 'any StandardPredicateExpression'에러가 발생하였습니다.  문제가 발생한 이유는 Predicate 내부에서 다른 모델 객체를 참조하는 것은 불가능하기 때문입니다.위에 코드에서는 quote.id 를 통해서 quote 모델 객체의 id 를 참조하고 있으므로 문제가 발생합니다.predicate: #Predicate { $0.id == quote.id } 그렇기 때문에 단순히 Predicate 외부에 참조할 객체의 변수를 담아 다음과 같이 문제를 해결할 수 있습니다..
SwiftUI - 드래드 기능 On Off 할 수 있게 만들기
·
SwiftUI
SwiftUI 에서 제공하는 DragGesture 를 비활성화하는 기능을 구현하기 위한 방법을 다룹니다 SwiftUI에서 if문은 View 빌더 내에서 사용될 때, 항상 View를 반환해야 합니다. 즉, gesture 메서드 안에서 if를 사용하는 것은 문법적으로 허용되지 않기 때문에, 이를 해결하려면 if 조건을 삼항 연산자(? :)나 조건부 뷰 빌더를 사용하여 처리해야 합니다. 다음은 삼항 연산자를 사용하여 만약 특정 값이 false 라면 Drag 동작을 허용하고 만약 true 라면 Drag 동작을 비활성화 시킵니다.@State private var isTurning: (Bool, Bool) = (false,false)....gesture( isTurning.0 == false ? ..
ytw_developer
'SwiftUI' 카테고리의 글 목록 (2 Page)