En आमचा मागील लेख आमच्या अनुप्रयोगाच्या इंटरफेसमध्ये आम्ही एक लेबल, एक टेक्स्टफिल्ड आणि एक बटण समाविष्ट केले होते. आम्हाला बटणावर क्लिक करताना मजकूरफिल्डमध्ये जे प्रविष्ट होते त्यासह लेबलची सामग्री अद्यतनित केली जावी अशी आमची इच्छा होती. आम्ही (चरण 1) प्रोजेक्ट तयार केला आणि (चरण 2) स्क्रीन परिभाषित करण्यासाठी इंटरफेसबिल्डरचा वापर केला. आता आम्ही अनुप्रयोग चालू ठेवण्यासाठी उर्वरित चरणांसह सुरू ठेवू.
चरण 3. व्ह्यूकंट्रोलरमध्ये व्हेरिएबल्स तयार करा.
आमच्याकडे आमचा इंटरफेस योग्य आहे. खरं तर, आम्ही बिल्ड अँड गो केले तर आम्ही कसे करीत आहोत ते आम्हाला दिसून आले:
परंतु अर्थातच बटण दाबताना काहीही होत नाही, कारण आम्ही किमान अत्यावश्यक घडामोडी केल्या नाहीत. या चरण 3 मध्ये आम्ही हॅलोवर्ल्डव्ह्यूकंट्रोलरमध्ये, इंटरफेस (. एच फाइल) आणि अंमलबजावणी (. मी फाइल) मध्ये व्हेरिएबल्स आणि पद्धतींचा परिचय करुन देणार आहोत. हे करण्यासाठी, आम्ही मागील पोस्टच्या शेवटी दर्शविल्याप्रमाणे, आम्हाला हे जाणून घ्यावे लागेल की टेक्स्टफिल्ड एक यूआयटी टेक्स्टफिल्ड वर्गाशी संबंधित आहे, आणि लेबल एक युआयएलबेल वर्गाशी संबंधित आहे. हे 2 वर्ग UIKit चौकटीत आहेत.
जर आम्ही इंटरफेस बिल्डर बंद केला आणि जतन केला नसेल तर आम्ही ते करतो आणि एक्सकोडमध्ये आम्ही हॅलोवर्ल्डव्ह्यूकंट्रोलर फाइल ही फाइल उघडतो. आत्ता कोडमध्ये असे काहीतरी असेलः
आम्ही आधीच काही वस्तुनिष्ठ-सीकडे पहात आहोत. या कोडमध्ये आम्ही UIKit लायब्ररीची आयात घोषणा पाहतो, जिथे UILabel आणि UITextField वर्ग आहेत. इंटरफेस कसा घोषित केला जातो हे आपण पाहतो आणि ते UIKit च्या जेनेरिक UIViewController मधून विस्तारित होते.
इंटरफेस कोडमध्ये आम्ही खालील कोड समाविष्ट करतो:
आम्ही काय केले ते आता समजावून सांगू:
- आम्ही @ इंटरफेस ब्लॉकमध्ये अनुक्रमे 2 व्हेरिएबल नावे * लेबल आणि * टेक्स्टफिलड, युआयएबेल आणि यूआयटीक्स्टफिल्ड प्रकाराचे 2 गुणधर्म घोषित केले आहेत. पुढे IBOutlet दिसते. हे सर्व काय आहे? आम्ही स्वत: ला स्पष्ट करतो. आयबीओटलेट हा एक प्रकारचे व्हेरिएबल नाही; इंटरफेस बिल्डरला यिनाबाईल आणि यूआयटी टेक्स्ट फील्ड या प्रकारच्या चलांचे अस्तित्व जाणून घेण्यात मदत करणारे एक निर्देश आहेत. तसे, लक्षात ठेवा की मागील लेखात आम्ही आपल्याला इंटरफेस बिल्डरमधील कंट्रोल ऑब्जेक्ट्स (बटणे, लेबल, मजकूर फील्ड इ.) चे चल प्रकार जाणून घेण्यासाठी युक्ती दिली होती. दुसरीकडे, व्हेरिएबलच्या नावाच्या * चे अंक जावा प्रोग्रामरांना आश्चर्यचकित करतात, सी इतकेच नव्हे ... परंतु हे जाणून घ्या की आपण ऑब्जेक्टिव्ह-सीमध्ये असेच उदाहरण लिहाल.
- UILabel आणि UITextFeld गुणधर्म घोषित केले आहेत. नॉनॉटॉमिक आणि रिटेन आम्ही आत्ता पाहणार नाही, हे मेमरी व्यवस्थापनाशी संबंधित आहे.
- आपण पाहत आहोत की आम्ही एक मेथड अपडेट करते. त्यास समोर एक चिन्ह आहे, ही एक उदाहरण पद्धत आहे हे दर्शविते, आणि वर्ग पद्धत नाही (त्यांच्यासाठी + चिन्ह स्पष्ट केले आहे). आम्ही हे समजावून सांगू शकत नाही कारण ही मूलभूत ऑब्जेक्ट-देणारं प्रोग्रामिंग आहे ... ती पद्धत काहीही (म्हणजे शून्य) परत करत नाही आणि टाइप आयडीचे पॅरामीटर प्राप्त करते. मुळात हे ऑब्जेक्टच्या अभिज्ञापकास संदर्भित करते जे आमच्या अपडेटेक्स्टो पद्धतीवर कॉल करेल, जे लेबलचे मूल्य अद्यतनित करेल. आम्ही अंदाज करू शकतो की ते नियंत्रण स्वतःच बटण असेल ...
एकदा हे पूर्ण झाल्यावर आम्ही चरण 3 सह पूर्ण केले.
चरण 4. कंट्रोलर व्हेरिएबल्सवर पहा नियंत्रणे बांधा.
आम्ही जर पुनरावलोकन केले तर एकीकडे आम्ही आपला इंटरफेस बिल्डरसह आपला इंटरफेस विकसित केला आहे आणि दुसरीकडे आमच्याकडे हॅलोवर्ल्डव्ह्यूकंट्रोलर.आर.एच. (हॅलोवर्ल्डव्ह्यूकंट्रोलरइआरएम कंट्रोलर क्लासचा इंटरफेस) मधील त्या नियंत्रणाशी संबंधित चल आहेत. तथापि, दृश्य आणि नियंत्रक यांच्यात अद्याप कोणताही संबंध नाही, म्हणजेच आम्ही त्यासंबंधित कोणतीही सूचना दिली नाही, उदाहरणार्थ, आम्ही इंटरफेस बिल्डरमध्ये डिझाइन केलेले मजकूर फील्ड ज्यामध्ये आम्ही ठेवले आहे त्या यूआयटीक्स्टफिल्ड प्रकारात बदलता येतो. वर्ग आता आम्ही हे कार्य करणार आहोत. हॅलोवॉल्डव्ह्यूकंट्रोलरइक्झीब वर क्लिक करून आम्ही पुन्हा इंटरफेस बिल्डर उघडतो, मजकूर बॉक्स वर क्लिक करा आणि इन्स्पेक्टर पॅलेटमध्ये आम्ही दुसर्या टॅबवर (मजकूर फील्ड कनेक्शन) जाऊ. तेथे काही चिन्हांकित न करता रेफरेन्सिंग आउटलेट्स नावाचा एक विभाग आहे. याचा अर्थ असा की याक्षणी इंटरफेस बिल्डरला हे मजकूर फील्ड आणि वर्गाचे आयबीओउलेट (इंटरफेस बिल्डर आउटलेट) दरम्यान कोणताही संबंध माहित नाही ... परंतु आमच्याकडे आमच्या हॅलोवर्ल्डव्ह्यूकंट्रोलरमध्ये एक यूआयटीक्स्टफिल्ड आयबीओटलेट आहे, म्हणून आम्ही त्याचा दुवा साधणार आहोत.
हे करण्यासाठी, आम्ही आकृतीमध्ये पाहिल्याप्रमाणे, «न्यू रेफरन्सिंग आउटलेट to च्या पुढील छोट्या वर्तुळावर क्लिक करून, आम्ही हॅलो वर्ल्डव्ह्यूकंट्रोलरअॅक्सिब नावाच्या विंडोच्या फाईलच्या मालकाकडे ड्रॅग करतो. हे आपल्याला 2 पर्याय, पूर्ण दृश्य आणि टेक्स्टफिल्ड (आमचे व्हेरिएबल) निवडू देते. अर्थातच आम्ही टेक्स्टफिल्ड निवडतो आणि अशा प्रकारे आम्ही आपला टेक्स्ट बॉक्स त्याच्या यूआयटी टेक्स्टफेल्ड प्रकारात बदलतो. तसे, फाइलचा मालक किंवा फाईलचा मालक आमच्या कंट्रोलर वर्गापेक्षा कमी किंवा कमी नाही ...
आम्ही आमच्या नियंत्रकाच्या चल लेबलशी संबंधित लेबलसह ऑपरेशनची पुनरावृत्ती करतो. आणि बटणासह, हे काहीतरी वेगळे आहे. या प्रकरणात आम्ही आमच्या अपडेटटेक्स ऑपरेशनशी संबंधित आहोत, परंतु एका विशिष्ट कार्यक्रमासाठी. 'टच अप इनसाइड' इव्हेंटसह हे करा आणि आमची अपडेक्टेक्स्टो पद्धत निवडा:
आणि अशाप्रकारे आम्ही आधीपासूनच इंटरफेस बिल्डर आणि आम्ही कंट्रोलर मध्ये समाविष्ट केलेले व्हेरिएबल्सद्वारे परिभाषित केलेल्या नियंत्रणे संबंधित आहेत. आम्ही सर्वकाही जतन करुन इंटरफेस बिल्डर बंद करतो आणि आम्ही एक्सकोडकडे परत जाणा last्या शेवटच्या टप्प्यावर जातो.
चरण 5. नवीनतम घडामोडी.
एक्सकोडमध्ये आम्ही हॅलोवर्ल्डव्ह्यूकंट्रोलरमी उघडतो आणि आम्ही खालील कोड ठेवतो जेणेकरून आमचा वर्ग असे दिसेल:
जर आपण बारकाईने पाहिले तर आम्ही फक्त @synthesize ब्लॉक लावला आहे, आणि इंटरफेसमध्ये घोषित केलेल्या पद्धतीची अंमलबजावणी. एच., अपडेटटेक्स्टो. त्या कोडच्या खाली आपल्याकडे बर्याच कमेंट केलेला कोड असेल.
@ सायन्थेसाइझ लाइन ओओ भाषांमध्ये (एन्केप्सुलेशन) टिपिकल सामान्य गेटर / सेटर (एक्सेसर्स / म्युटर्स) तयार करण्यासारखे काहीतरी करते. आम्हाला त्यांची आवश्यकता आहे जेणेकरून नियंत्रक मजकूर बॉक्सच्या सामग्रीवर पोहोचू शकेल.
आपण पाहू शकता म्हणून अद्यतनटेक्स्टो पद्धत केवळ आमच्या लेबलचा मजकूर फील्डच्या सामग्रीसह अद्यतनित करते. आपलं काम झालं.
आता आम्ही फक्त बिल्ड अँड गो करू आणि आपण पहाल की जेव्हा आपण मजकूर स्ट्रिंग प्रविष्ट कराल आणि बटणावर क्लिक कराल तेव्हा लेबलची सामग्री अद्यतनित होईल. पुढील लेखात आम्ही आमच्या अनुप्रयोगात सुधारणा आणू.
खूप चांगले, सोपे आणि सोपे ट्यूटोरियल.
बरं, मी खूप खरबूज असावा - कारण ते माझ्यासाठी कार्य करत नाही. मी एका स्ट्रिंगमध्ये मूल्य मिळविले आहे आणि ते मजकूर घेते परंतु ते ते लेबलला देत नाही, किमान ते रंगवत नाही, कारण मी लेबल.टेक्स्ट पाहण्याचा प्रयत्न करतो आणि ते मला व्याप्तीबाहेर सांगते ...
तुमची ट्यूटोरियल उत्तम, आयफोनसाठी हा विकास खरोखरच चांगल्या प्रकारे स्पष्ट करते, मी आशा करतो की आपण अधिक शिकवण्या प्रकाशित करणे सुरू ठेवले आहे.
शुभेच्छा
हाय, सर्व छान, परंतु ते कार्य करत नाही. हे कार्य करण्यासाठी मला इंटरफेस बिल्डरच्या दृश्यास क्यूबमधील दृश्यासह दुवा साधावा लागला, जसे की आपण टेक्स्टफील्ड आणि लेबलसह शिकवता. बाकीच्या सर्वांचे मनापासून आभार