2010-09-30 27 views
9

Tôi đang cố gắng làm một cái gì đó đơn giản như thêm một nhãn vào một Xem trong XCode và IB và tôi không thể tìm ra cách để làm điều đó. Tất cả các mẫu tôi tìm thấy trực tuyến là dành cho các phiên bản cũ hơn của IB nên các hướng dẫn không chính xác.Kết nối một UILabel trong Trình tạo giao diện và XCode?

Tôi có nhãn trên tệp .xib của mình, trong tệp Controller.h Tôi có một IBOutlet UILabel được khai báo với thuộc tính được thiết lập.

Trong tệp Bộ điều khiển.môi tôi đã tổng hợp Thuộc tính đó.

Trong Trình tạo giao diện, tôi không thể cho CUỘC SỐNG của tôi tìm ra cách liên kết nhãn của tôi trong mã của tôi với Nhãn trên .xib. Bất cứ khi nào tôi cố gắng kéo Connection to File's Owner, tùy chọn duy nhất hiển thị là "View".

Nếu tôi nhìn vào Bộ điều khiển trong Cửa sổ thư viện của Trình tạo giao diện, Nhãn hiển thị dưới dạng UILabel trong Cửa hàng. Tôi khá chắc chắn rằng nó được sử dụng để được một loại "id", nhưng nó sẽ tự động hiển thị như UILabel và nếu tôi cố gắng thêm một "id" một, nó không hoạt động hoặc.

Ai đó có thể chỉ cho tôi đến một nơi nào đó để giải thích điều ngu ngốc này? Nó không phải là khó khăn để làm cho một nhãn có văn bản.

+0

Hãy đăng Controller.m và .h tập tin – ennuikiller

+0

PackViewController.h: http://pastebin.com/ DesS8j50 PackViewController.m: http://pastebin.com/jasum3SB –

+0

Ông không có bất kỳ vấn đề tuyên bố các iboutlet. Anh ta chỉ cần kết nối nó đúng cách. Bạn đang cố kết nối nhãn với biểu tượng chủ sở hữu tệp thực tế sẽ chỉ hiển thị VIEW. Nếu bạn chỉ cần nhìn vào bài viết tôi gửi cho bạn, tôi đã viết một loạt các mã của nó giống như pselus, nhưng thats chỉ để đảm bảo bạn WROTE THE CODE đúng. sau đó chúng tôi đi vào interfacebuilder và tôi giải thích những gì bạn cần làm trong bài đăng. kiểm tra nó dưới đây. cảm ơn PK – Pavan

Trả lời

8

Giả sử chế độ xem của bạn được gọi là ExampleView. Nhấp vào chủ sở hữu tệp và sau đó nhấn ⌘ + 4. Điều này sẽ làm nổi bật hộp nhận dạng. Hãy chắc chắn rằng tên lớp giống với tên của lớp học của bạn.

Lưu và đóng Interface Builder và sau đó đi vào Xcode và xác minh:

// ExampleViewController.h 
#import <UIKit/UIKit.h> 

@class ExampleViewController; 
@interface ExampleViewController : UIViewController { 

    IBOutlet UILabel *label; 
} 

@property (retain, nonatomic) IBOutlet UILabel *label; 

@end 

Trong file .m của bạn:

// ExampleViewController.m 
#import "ExampleViewController.h" 

@implementation ExampleViewController 

@synthesize label; 

Sau đó lưu các tập tin xcode và mở ra ExampleView của bạn. Kéo nhãn vào chế độ xem. Bạn không được phép kết nối nhãn đó với chủ sở hữu Tệp.

LẮP ĐẶT BẠN BẤM FILEOWNER. HIT ⌘ + 2 này sẽ mở hộp kết nối. thì bạn sẽ thấy cửa hàng của bạn. Nhấp và kết nối với nhãn của bạn.

+0

Sử dụng kỹ thuật này có vẻ như nó sẽ hoạt động, nhưng bây giờ khi tôi cố gắng tải View đó, tôi nhận được một lỗi "SIGABRT" với thông báo này 'lớp này không phải là giá trị mã hóa tuân thủ cho thẻ khóaNameLabel'. –

+0

tôi nhận thấy có lỗi trong mã của bạn ... trong tệp .H .... bạn cần thêm IBOUTLET sau thuộc tính (giữ lại, nonatomic) IBOUTLET uilabel * cardnamelabel. bạn chỉ wronte tài sản (giữ lại, nonatomic) uilabel * cardNamelabel. đó không phải là một iboutlet – Pavan

+0

Tôi đã thay đổi mã của mình để sử dụng mã của bạn, ngoại trừ **, là bắt buộc và những gì trên thế giới là nó? –

3

Hãy chắc chắn rằng dòng tài sản của bạn trông như thế này:

@property (nonatomic, retain) IBOutlet UILabel *label; 

Để lại (hoặc thiết lập) các loại nhãn như UILabel trong Interface Builder. Nếu điều đó không hiệu quả, hãy thử File -> Reload All Class Files trong Interface Builder. Mã của bạn có vẻ tốt, nhưng CardNameLabel nên bắt đầu bằng chữ thường 'c'.

+1

tuyên bố UILabel là thuộc tính là tùy chọn. –

2

Hãy thử điều này: nhấp vào biểu tượng Chủ sở hữu tệp để chọn và chuyển đến tab Nhận dạng của người kiểm tra (tab thứ 4) và kiểm tra giá trị của cài đặt Class. Tôi đoán là nó hiện đang được đặt thành UIViewController.

Vì lớp có số IBOutlet bạn khai báo là (hoặc phải là) một lớp con của UIViewController, bạn sẽ cần phải đổi tên lớp thành tên của lớp con của bạn (ví dụ: MyController hoặc bất kỳ tên nào hiện được đặt tên) .

0

Giả sử rằng bạn có chế độ xemController và tệp xib có nhãn UILabel.Các bước để kết nối các UILabel (còn file xib) viewController của bạn là:

1) Trong tập tin header, tạo đối tượng UILabel và tài sản cho nó

IBOutlet UILabel *label; 

@Property (Nonatomic, retain) IBOutlet UILabel *label; 

và synchthesize nó trong thực hiện tập tin

2) Mở tệp xib của bạn trong Bộ dựng giao diện

Nhấp đúp vào "Chủ sở hữu tệp", sau đó chọn chế độ xemTrình điều khiển trong danh sách thả xuống của cửa sổ bật lên để kết nối tệp xib của bạn với bộ điều khiển

.210

3) nhấp chuột phải vào chủ sở hữu tệp, trên hộp thoại pop-up:

  • điểm và kéo sang trọng (+) bên cạnh "View" và thả nó vào Xem hàng
  • điểm và kéo sang trọng (+) bên cạnh "label" và thả nó trên nhãn trên quan điểm

=> Bây giờ nhãn và quan điểm trong hồ sơ xib được kết nối với bộ điều khiển bạn

Các vấn đề liên quan