핵심 데이터는 결과로 SwiftUI 선택이 없는 상태에서도 볼 preselecting 옵션

0

질문

내가 가져오는 데이터에서 핵심 데이터 표시에서 선택,이 보기에 내장되어 SwiftUI. 나는 분투하는 첫 번째 선택 작업에서 선택,그러나 찾으면 내가 미리 지정 첫 개체 내에서 인출 결과,뷰에서의 init,선택 선택 작동합니다.

내가 원하는 것입할 수 있는 데이터로 선택하지만,미리 지정 중 하나다. 는 경우,다시 업데이트 코드는 아래에 아무것도 미리 선택한 다음,나는 선택할 수 없습니다. 나의 화면으로 얻을 수있는 옵션이 있지만,때 나는 누나,아무 일도 일어나,나는 그냥 그 작은 플래시니다. 을 다시 버튼을 누르면 다시 얻을 형태로 보기입니다.

어떤 아이디어로 만드는 방법에 대한 선적 핵심 데이터로 선택기지 않고 preselecting 옵션 중 하나 작동하는가?

-감사합니다!

import SwiftUI
import CoreData

struct RecordCreateview: View {
    @FetchRequest private var actions: FetchedResults<Actions>
    @State private var selectedAction: Actions

    init(context: NSManagedObjectContext) {
        let fetchRequest: NSFetchRequest<Actions> = Actions.fetchRequest()
        fetchRequest.sortDescriptors = [NSSortDescriptor(keyPath: \Actions.action, ascending: true)]
        fetchRequest.predicate = NSPredicate(value: true)
        self._actions = FetchRequest(fetchRequest: fetchRequest)
        do {
            let fetchResult = try context.fetch(fetchRequest)
            self._selectedAction = State(initialValue: fetchResult[0])
        } catch {
            fatalError("Problem fetching Action records.")
        }
    }
    
    var body: some View {
        NavigationView {
            Form {
                Picker("Select action", selection: $selectedAction){
                    ForEach(actions) { action in
                        if action.title == true {
                            Text("\(action.action!)").tag(action)
                        }
                    }
                }
            }
        }
    }
}
core-data ios picker swiftui
2021-10-26 20:12:53
1

최고의 응답

1

로 설정할 수 있습 selectedAction 존재하지 않는 Actionsinit(...) 다음과 같다:

self._selectedAction = State(initialValue: Actions(context: context))

는 것이 설정하지 않은 사전 선택된 객체 선택 도구입니다.

struct RecordCreateview: View {
    @FetchRequest private var actions: FetchedResults<Actions>
    @State private var selectedAction: Actions

    init(context: NSManagedObjectContext) {
        let fetchRequest: NSFetchRequest<Actions> = Actions.fetchRequest()
        fetchRequest.sortDescriptors = [NSSortDescriptor(keyPath: \Actions.action, ascending: true)]
        fetchRequest.predicate = NSPredicate(value: true)
        self._actions = FetchRequest(fetchRequest: fetchRequest)
        self._selectedAction = State(initialValue: Actions(context: context))  // <--- here
    }
    
    var body: some View {
        NavigationView {
            Form {
                Picker("Select action", selection: $selectedAction){
                    ForEach(actions) { action in
                        if action.title == true {
                            Text("\(action.action!)").tag(action)
                        }
                    }
                }
            }
        }
    }
}
2021-10-28 22:58:51

지 않을 것이 새로운 객체를 만들어 모든 시간은?
lorem ipsum

네,그것이 만들어 새로운 Actions 모든 시간,하지만 그것이 저장되지 않는 경우를 제외하고는 특별히고 싶어 그것을 저장합니다. 당신은 이것을 확인하실 수 있습니다 추가 .onAppear{ print("---> actions: \(actions.count)") }
workingdog

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................