2011-11-25 17 views
5

मैंने अपनी .storyboard फ़ाइल में एक UILabel बनाया है जिसमें कुछ प्रारंभिक टेक्स्ट "मूवी टाइटल" है। मैंने उस UILabel को मेरी ViewController फ़ाइलों में परिभाषित एक संपत्ति से जोड़ा है। कुछ कारणों से जब मैं सिम्युलेटर चलाता हूं तो पाठ यूआई में प्रदर्शित नहीं होगा। मैंने इसी तरह के प्रश्नों को देखा है, लेकिन मैंने कोई प्रतिक्रिया नहीं देखी है जो मदद करता है।यूलाबेल टेक्स्ट प्रदर्शित नहीं हो रहा है, लेकिन "टेक्स्ट" मान अपडेट हो रहा है (कंसोल में दिखाता है)

मैं अपने ज फ़ाइल में निम्न संपत्ति

@property (strong, nonatomic) IBOutlet UILabel * movieTitle; 

यह मेरी .m फ़ाइल में संश्लेषित है है

@synthesize movieTitle; 

मैं तो जो निम्न करता है कुछ कोड है:

NSLog(@"movie details title in Movie object: %@", _movie.name); 
self.movieTitle = [[UILabel alloc] init]; 
[self.movieTitle setText:self.movie.name]; 
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text); 

कंसोल निम्नलिखित

आउटपुट करता है
movie details title in Movie object: Transformers 
movie details title in UILabel.text: Transformers 

उत्तर

3

तो movieTitle एक अंतरफलक बिल्डर UILabel; तो आपको एक और उदाहरण बनाकर नहीं किया जाना चाहिए से जुड़ा है:

self.movieTitle = [[UILabel alloc] init]; 

आप जीयूआई में UILabel नहीं के पाठ की स्थापना कर रहे हैं।

बस, उस लाइन को हटाने के नीचे देखें:

NSLog(@"movie details title in Movie object: %@", _movie.name); 
[self.movieTitle setText:self.movie.name]; 
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text); 
6

आप मुख्य थ्रेड पर text संपत्ति सेट कर रहे हैं सुनिश्चित करें। यदि आप नहीं करते हैं, तो यह मान अपडेट करेगा, लेकिन लेबल को फिर से नहीं हटाएगा। सभी UIKit तत्वों को केवल मुख्य धागे पर अपडेट किया जाना चाहिए।

यदि आप इंटरफ़ेस बिल्डर में IBOutlet से कनेक्ट नहीं हो रहे हैं तो आपको केवल UILabel बनाने की आवश्यकता है।

+0

मुझे इसी तरह की समस्या का बिल्कुल सही जवाब था। मैं पृष्ठभूमि कतार में पाठ सेट कर रहा था। –

+0

मैं कन्स्ट्रक्टर में मान सेट कर रहा था और यूआई अद्यतन नहीं कर रहा था। आपके समाधान ने इसे ठीक किया लेकिन मुझे आश्चर्य है कि कंसोल में कोई चेतावनी या कुछ भी क्यों नहीं है ... – VSG24

2

यह उत्तर आपका मामला नहीं हो सकता है, लेकिन आपको यह उपयोगी लगता है।

मेरे मामले में, मैंने अपने ऐप के संस्करण को प्रदर्शित करने के लिए लॉगिन व्यू कंट्रोलर के नीचे एक लेबल लगाया। जब मैं ऐप का परीक्षण करता हूं, तो लेबल प्रकट नहीं होता है। समस्या यह है क्योंकि हालांकि .xib फ़ाइल को रेटिना 4 पूर्ण स्क्रीन के लिए लक्षित किया गया है, लेकिन परिनियोजन लक्ष्य (ऐप सारांश में) 5.0 है, इसलिए जब ऐप चलाया जाता है (सिम्युलेटर पर), तो वास्तव में यह आईफोन 5.0 सिम्युलेटर चल रहा है 3.5 की एक स्क्रीन "। और चूंकि लेबल दृश्य के निचले हिस्से में है, यह 3.5" स्क्रीन के दृश्य क्षेत्र से बाहर है। इसे ठीक करने के लिए, बस लेबल के ऑटोोज़ाइजिंग को बदलें।

उम्मीद है कि इससे मदद मिलती है।

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