मैं अपने ऐप में एक नया आइटम जोड़ने के लिए एक व्यू कंट्रोलर लिख रहा हूं। यह मोनो टच के लिए एकदम सही फिट है। डियालॉग, क्योंकि यह मेरे आइटम की प्रासंगिक संपत्ति के क्षेत्र के साथ तालिका आधारित इंटरफ़ेस के साथ आसानी से किया जा सकता है।एक दृश्य नियंत्रक में आप MonoTouch.Dialog दृश्य को कैसे समाहित करते हैं?
इस कोड मैं ऐड आइटम दृश्य दिखाने के लिए वर्तमान में है (सरलीकृत, लेकिन मूल विचार रहता है):
Item item = new Item();
TapHandler handler = new TapHandler();
BindingContext bc = new BindingContext(handler, item, "Add Item");
DialogViewController dv = new DialogViewController(bc.Root, true);
this.NavigationController.PushViewController(dv, true);
है कि काम करता है, मैं अगर मैं दृश्य के विवरण को संपुटित सकता है पसंद करेंगे अपने स्वयं के दृश्य नियंत्रक में है, तो कोड ऐसा दिखाई दे सकता:
UIViewController controller = new AddItemViewController();
this.NavigationController.PushViewController(controller, true);
हालांकि, मैं समझ नहीं है कि यह कैसे लागू करने के लिए। मैंने सोचा था कि करने के लिए तार्किक बात DialogViewController
का उप-वर्ग बनाना होगा। हालांकि, DialogViewController
के सभी रचनाकारों को RootElement
की आवश्यकता होती है। इसे प्राप्त करने के लिए, आपको सबसे पहले BindingContext
बनाना होगा। चूंकि आप बेस कन्स्ट्रक्टर को कॉल करने से पहले कोई कोड नहीं चला सकते हैं, यह काम खत्म नहीं करता है।
मेरे दूसरा दृष्टिकोण UIViewController
के उपवर्ग लागू, DialogViewController
बनाते हैं, और मेरी उपवर्ग this.AddChildViewController(dv)
और this.View.AddSubView(dv.View)
का उपयोग कर के एक बच्चे के रूप संवाद दृश्य नियंत्रक को जोड़ने के लिए किया गया था। हालांकि यह प्रारंभ में काम करता है, यदि आपके पास UINavigationController में नया व्यू कंट्रोलर है, और आप दिनांक तत्व पर क्लिक करते हैं, तो दिनांक दृश्य नेविगेशन नियंत्रक पदानुक्रम के बजाय एक मॉडल पॉपअप के रूप में दिखाई देता है। (यह समझ में आता है, क्योंकि DialogViewController
इस डिजाइन में NavigationController
पदानुक्रम का हिस्सा नहीं है)।
वहां से मैं अटक गया हूं। मैं उदाहरणों में इस तरह मोनो टच का उपयोग करने के किसी भी उदाहरण नहीं मिला। क्या ऐसा करना संभव है? या यदि यह नहीं है, तो क्या एक अच्छा कारण है कि इस तरह के कोड लिखना बुरा विचार क्यों है?
धन्यवाद, मैंने मैन्युअल रूप से निर्माता में रूट तत्व का उपयोग करने के बारे में नहीं सोचा था। मैंने अपना खुद का जवाब दिया जो कि कन्स्ट्रक्टर में एक नया रूट तत्व स्थापित करके प्रतिबिंब एपीआई के साथ काम करता है। –