कोर डेटा में परिणाम एक SwiftUI बीनने के बिना देखने preselecting एक विकल्प

0

सवाल

मैं कर रहा हूँ से डेटा दिलकश कोर डेटा और प्रदर्शित करने में यह एक बीनने, इस दृश्य में बनाया गया है SwiftUI. मैं संघर्ष किया, पहली बार में प्राप्त करने के लिए चयन से काम करने के लिए बीनने, लेकिन अगर मैं पहिले से चयन पहली वस्तु से लायें में, परिणाम को देखने के init, को बीनने के साथ चयन के काम करता है.

मैं क्या चाहते हैं सक्षम होना करने के लिए लोड करने के लिए अपने डेटा में बीनने, लेकिन नहीं पहिले से चयन वस्तुओं में से एक. फिर, अगर मैं अद्यतन नीचे दिए गए कोड को तो कुछ भी नहीं है preselected है, तो मैं चयन नहीं कर सकते कुछ भी. मैं प्राप्त करने के लिए स्क्रीन के विकल्प हैं, लेकिन जब मैं एक नल, कुछ भी नहीं होता है, मैं सिर्फ उस छोटे से फ्लैश पर पंक्ति. मैं करने के लिए वापस बटन हिट करने के लिए वापस पाने के लिए के रूप में देखें.

के लिए किसी भी विचार कैसे बनाने के लिए कोर डेटा लोड हो रहा है में एक बीनने के बिना 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 करने के लिए एक अस्तित्वहीन Actions में init(...) इस तरह:

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

नहीं होगा कि सेट एक पूर्व चयनित ऑब्जेक्ट picker.

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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में