मेरे पास मेरे ContentView में एक मनाया गया ऑब्जेक्ट है जिसमें टैबव्यू शामिल हैं।

class GlobalValue: ObservableObject {
  @Published var stringValue = ""
  @Published var intValue = 0
}

struct ContentView: View {
    @ObservedObject var globalValue = GlobalValue()
}

किसी एक टैब से मुझे ContentView के देखे गए ऑब्जेक्ट मान को बदलने की आवश्यकता है।

ContentView().globalValue.intValue=25

यह मूल्य नहीं बदल रहा है। मैं उस देखे गए ऑब्जेक्ट मान को कैसे बदल सकता हूं? धन्यवाद...

0
Necdet Alperen Özil 30 जून 2021, 18:54
यह एक ContentView() जिसे आप देखने का एक नया उद्देश्य बना रहे हैं। आपको पर्यावरण वस्तुओं का उपयोग करना होगा।
 – 
Raja Kishan
30 जून 2021, 18:57
आप यहां से संदर्भ ले सकते हैं: stackoverflow.com/a/65940114/14733292 दूसरा दृष्टिकोण देखें
 – 
Raja Kishan
30 जून 2021, 19:00

1 उत्तर

सबसे बढ़िया उत्तर

यह मूल्य बदल रहा है। समस्या यह है कि आप अपनी संरचना में स्थानीय रूप से GlobalValue के उदाहरण को तुरंत चालू कर रहे हैं। संरचना के बाहर इसका कोई जीवन नहीं है। मैं आप एक वैश्विक स्टोर के रूप में Observable Object का उपयोग करना चाहता हूं, आपको इसे एक बार बनाने और उस उदाहरण का उपयोग करने की आवश्यकता है।

ऐसा करने का सबसे आसान तरीका है जोड़ना static let shared = GlobalValue() अपनी कक्षा में, और अपनी संरचना में globalValue = GlobalValue.shared का उपयोग करें जो अनिवार्य रूप से आपको एक सिंगलटन देता है। आपके पास एक उदाहरण होगा कि सभी विचार पढ़ और लिख सकते हैं।

1
Yrb 30 जून 2021, 19:00