2011-11-25 15 views
5

Tôi đã tạo một UILabel trong tệp .storyboard có một số văn bản ban đầu "Tiêu đề phim". Tôi đã kết nối UILabel đó với một thuộc tính được định nghĩa trong các tệp ViewController của tôi. Vì lý do nào đó, văn bản sẽ không hiển thị trong giao diện người dùng khi tôi chạy trình mô phỏng. Tôi đã xem xét các câu hỏi tương tự, nhưng tôi đã không thấy bất kỳ phản hồi nào hữu ích.Văn bản nhãn không hiển thị, nhưng giá trị "văn bản" đang cập nhật (hiển thị trong bảng điều khiển)

Tôi đã thuộc tính trong file .h của tôi sau

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

Nó được tổng hợp trong file .m tôi

@synthesize movieTitle; 

sau đó tôi có một số mã nào sau đây:

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); 

Bảng điều khiển xuất ra

sau đây
movie details title in Movie object: Transformers 
movie details title in UILabel.text: Transformers 

Trả lời

3

Nếu movieTitle được kết nối với một giao diện Builder UILabel; sau đó bạn không nên tạo ra Ví dụ khác:

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

Bạn đang thiết lập các văn bản của không phải là người UILabel trong GUI.

Chỉ cần xóa dòng đó, xem dưới đây:

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

Hãy chắc chắn rằng bạn đang thiết lập các text tài sản trên các chủ đề chính. Nếu không, nó sẽ cập nhật giá trị, nhưng sẽ không vẽ lại nhãn. Tất cả các thành phần UIKit chỉ được cập nhật trên chuỗi chính.

Ngoài ra, bạn chỉ cần tạo một số UILabel thứ hai nếu bạn không kết nối với một IBOutlet trong Trình tạo giao diện.

+0

Câu trả lời hoàn hảo cho vấn đề tương tự mà tôi gặp phải. Tôi đã thiết lập văn bản trong một hàng đợi nền. –

+0

Tôi đã đặt giá trị trong hàm tạo và giao diện người dùng không cập nhật. Giải pháp của bạn đã khắc phục nó nhưng tôi tự hỏi tại sao không có cảnh báo hay bất cứ điều gì trong bảng điều khiển ... – VSG24

2

Câu trả lời này có thể không phải là trường hợp của bạn, nhưng bạn có thể thấy nó hữu ích.

Trong trường hợp của tôi, tôi đặt nhãn ở cuối trình điều khiển chế độ xem đăng nhập để hiển thị phiên bản ứng dụng của tôi. Khi tôi chạy thử nghiệm ứng dụng, nhãn không xuất hiện. Vấn đề là bởi vì mặc dù tệp .xib đăng nhập được nhắm mục tiêu cho Retina 4 toàn màn hình, mục tiêu triển khai (trong Tóm tắt ứng dụng) là 5.0, vì vậy khi ứng dụng được chạy (trên trình mô phỏng), nó thực sự là mô phỏng iPhone 5.0 đang chạy, với một màn hình 3,5 ". Và vì nhãn nằm ở dưới cùng của chế độ xem, nó không nằm trong vùng màn hình 3,5". Để khắc phục điều này, chỉ cần thay đổi cách tự động nhãn.

Hy vọng điều này sẽ hữu ích.