2015-11-25 7 views
7

मुझे पता है कि मैं किसी कस्टम ऑब्जेक्ट के नोट्स टेक्स्ट फ़ील्ड में UITextView में परिवर्तनों को मैप करने के लिए निम्न कार्य कर सकता हूं।RxSwift तरीका नक्शा और कस्टम ऑब्जेक्ट के टेक्स्ट फ़ील्ड में UITextView का टेक्स्ट बाइंड करें?

self.notesViewModel.currentNote() 
      .map { $0.text } 
      .bindTo(self.notesTextView.rx_text) 

मैं रिवर्स पैटर्न के एक ही तरह का उपयोग कर कैसे कर सकता है? पैटर्न नोट्स टेक्स्टव्यू.आरएक्स_टेक्स्ट है, इसे वर्तमान नोट के टेक्स्ट पर मैप करें। मैं कैसे जिसके बाद गैर RxSwift-y लगता है क्या करना है:

_ = notesTextView.rx_text.subscribeNext { someText in 
    self.notesViewModel.currentNote().value.text = someText 
} 

IOW, ऐसा लगता है जैसे मैं UITextView (उर्फ notesTextView), नक्शे लेते हैं, और वर्तमान नोट में परिवर्तन बाध्य करने के लिए सक्षम होना चाहिए। वर्तमान नोट एक टेक्स्ट स्ट्रिंग फ़ील्ड वाले नोट के साथ वैरिएबल देता है।

उत्तर

11

आप <-> दो तरह के बाध्यकारी ऑपरेटर का उपयोग कर सकते हैं।

वहाँ एक अच्छा example in the RxSwift repo है, यहाँ एक उपयोग उदाहरण है:

// bind UI values to variables 
usernameOutlet.rx_text <-> username 
passwordOutlet.rx_text <-> password 
repeatedPasswordOutlet.rx_text <-> repeatedPassword 
+0

यह एक महान ऑपरेटर है और वारंटों की ओर इशारा किया जा रहा है। ग्रेट जॉब GitHubSignupViewController फ़ाइल में एक लिंक प्रदान करता है जिसमें यह शामिल है। । – finneycanhelp

+1

जगह में समारोह रखने के बाद, मैं <-> self.notesViewModel.currentNote() पाठ notesTextView.rx_text की कोशिश की और मैं त्रुटि मिलती है: "उम्मीद तर्क प्रकार के प्रकार के मूल्य 'ControlProperty ' कनवर्ट नहीं कर सकता 'ControlProperty <_>' – finneycanhelp

+0

RxSwift के लिए 2.2: https://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Operators.swift#L20 – thierryb

0

मैं, मैं सबमिट करने के बाद किसी पाठ फ़ील्ड और भिन्न प्रकार के चर के बीच यह करने के लिए की जरूरत समाधान मैं के रूप में tuples और संवृति का उपयोग कर के साथ आया था एक पुल का अनुरोध:

https://github.com/ReactiveX/RxSwift/pull/559

एक ही विधि उदाहरण के लिए एक स्ट्रिंग के लिए एक डबल मैप करने के लिए इस्तेमाल किया जा सकता।

संबंधित मुद्दे