2012-06-27 28 views
56

Tôi đã tạo ra TestViewController.h và * .m đầu tiên của mình. Sau đó TestView.xib của tôi.Xcode - Cách kết nối XIB với lớp ViewController

Bây giờ tôi cần nói với xib của tôi: "Có, vui lòng lấy lớp TestViewController làm Chủ sở hữu tệp của tôi".

Tôi mở xib của mình, đi tới Trình kiểm tra danh tính của tệp của nóChủ sở hữu và chọn trong "Lớp tùy chỉnh" TestViewController. Tuy nhiên, điều này có vẻ không đủ - như khi tôi mở TestView.xib, và sau đó chọn "Assistent Editor View" nó sẽ mang đến ViewController tương ứng ở phần bên phải của màn hình chia - trong trường hợp của tôi là " TestViewController.h ". Nhưng nó không!

Có cần phải ràng buộc xib theo bất kỳ cách nào với bộ điều khiển xem của nó bằng cách kéo các dòng vào các tệp như bạn làm với các cửa hàng và hành động không?

Trả lời

83

Nhấp để chọn xib. Bây giờ, chọn chủ sở hữu của tập tin. Trong bảng thuộc tính ở bên phải, chọn tab thứ ba, "Trình kiểm tra danh tính". Có tiêu đề có tên là Lớp tùy chỉnh. Đặt tên cho bộ điều khiển của bạn ở đó. Sau đó, bạn có thể kết nối các phần tử với chủ sở hữu của tệp.

enter image description here

+0

Bạn có nghĩa là tôi chỉ nên chọn tệp trong trình đơn tệp và sau đó nhấp vào "Thanh tra danh tính"? Với tôi nói rằng "không có lựa chọn". – mogio

+0

Đó là vì xib bị bỏ chọn. Nhấp lại vào chủ sở hữu tệp để kích hoạt trình kiểm tra danh tính. – Augustine

+0

Tôi mở xib của tôi, đi đến Thanh tra Identity của fileOwner của nó và chọn dưới "Custem Class" TestViewController. Nhưng điều này có vẻ không đủ - như khi tôi mở TestView.xib, và sau đó chọn "Assistent Editor View" nó sẽ mang đến ViewController tương ứng trên phần bên phải của màn hình chia - trong trường hợp của tôi là "TestViewController. h ". Nhưng nó không! – mogio

0

có bạn có thêm thuộc tính quan điểm nộp chủ sở hữu của bộ điều khiển nhìn từ xây dựng giao diện:

+0

cách tôi làm điều đó ... Tôi không thể vẽ bất kỳ đường nào đến tệp controller.h ... – mogio

+0

vào trình xây dựng giao diện của TestView sau khi thêm lớp .. và bạn sẽ tìm thấy có tệp chủ sở hữu trong xib chỉ cần nhấp trên đó và nhìn thấy trong tùy chọn danh sách tài sản kiểm tra tất cả các tùy chọn bạn sẽ tìm thấy có xem thêm vào xem với chủ sở hữu tập tin ... – Abhishek

0

chọn fileownr của bạn đi đến cửa sổ thanh tra danh tính, và thay đổi tên lớp của chủ sở hữu tập tin để xem tập tin .h của bạn, Điều đó sẽ kết nối.

+0

Đó không phải là chính xác những gì tôi đã làm? – mogio

+0

@mogio pls đánh dấu câu trả lời – Bittu

+0

@mogio Vì vậy, những gì bạn muốn? – Bittu

17

Trong điều khiển xem tạo ra một "cái nhìn" ổ cắm (UIView) và đánh dấu nó như IBOutlet. (Khi bạn sử dụng các giá trị mặc định/mẫu chính xác khi tạo tệp trong xcode, thì thuộc tính này phải có sẵn.) Trong Trình tạo giao diện tạo liên kết giữa chế độ xem chính và thuộc tính/cửa sổ xem của chủ sở hữu bộ điều khiển chế độ xem/tệp. Chỉ cần cho bức tranh đầy đủ: Khi tạo/phân bổ bộ điều khiển xem, bạn nên khởi tạo nó bằng tệp XIB thích hợp. Đây là thời điểm rất, nơi mà đối tượng bộ điều khiển xem được ràng buộc với khung nhìn được tạo ra từ tệp XIB.

+0

Cảm ơn Hermann, nhưng chính xác đó là những gì tôi đang cố gắng đạt được. Để làm điều đó bằng tay. Khi tôi tự động tạo chúng, tệp h sẽ không nói gì về xib. Nhưng vẫn có một kết nối. Tôi đang cố gắng để có được kết nối này mà không tạo ra các cá thể của các thuộc tính hoặc các phương thức. Tôi cố gắng hiểu cơ chế đằng sau các ràng buộc. – mogio

+0

Chính xác bạn muốn tạo thủ công bằng cách nào? Bạn có muốn tạo chế độ xem đầy đủ của mình theo cách lập trình mà không cần sử dụng tệp Trình xây dựng giao diện và tệp XIB không? –

+0

Hoặc bạn có muốn tạo bộ điều khiển chế độ xem ở một nơi và sau đó tạo XIB nôn méo và sau đó liên kết chế độ xem đó với bộ điều khiển chế độ xem này đã tồn tại chưa? Và tại sao? Bạn muốn đạt được điều gì cuối cùng? –

6

1) Đầu tiên giống như mọi người nói cho tên view controller trong lớp của Chủ đầu tư tập

2) Chủ đầu kéo Chọn File của một dòng từ đó đến xem này kết nối cả

3) Tạo một thể hiện của điều khiển Xem và thêm nó vào cửa sổ để mà đoạn mã được như sau,

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 

4) Cuối cùng thêm quan điểm điều khiển xem như subview để window.TO làm điều đó mà mã hóa như sau,

[window addSubview:[controller view]]; 

Hãy thử đoạn mã sau vào appdelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after application launch 
    [window makeKeyAndVisible]; 

    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
    [window addSubview:[controller view]]; 
} 

5) Sử dụng đoạn mã sau để tối đa hóa kích thước của điểm đến cửa sổ để không gape xuất hiện

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]]; 

Bây giờ bạn sẽ thấy bạn xem bộ điều khiển như bạn mong đợi ...

Tôi hy vọng điều này sẽ giúp ....

+0

của bạn rất hữu ích, cảm ơn bạn. –

17

Tôi nghĩ tôi chạy vào một cách chính xác tình trạng này khi tôi tạo một lớp con UIViewController nhưng quên kiểm tra "với .xib cho giao diện người dùng" khi tôi đã làm điều đó. Sau đó, tôi quay lại và tạo riêng .xib.

Dưới đây là một cách từng bước khác để liên kết UIViewController và .xib mới của bạn.

  1. Chọn Chủ sở hữu tệp trong Trình giữ chỗ trên ngăn bên trái của IB. Trong Thanh tra Đặc tính (khung bên phải của IB), chọn tab thứ ba và chỉnh sửa "Lớp" trong "Lớp Tùy chỉnh" làm tên của lớp con UIViewController mới của bạn.

  2. Sau đó nhấn ctrl hoặc nhấp chuột phải vào Chủ sở hữu tệp ở ngăn bên trái và vẽ đường thẳng đến cấp cao nhất của bạn Xem trong phần Đối tượng của ngăn bên trái. Chọn cửa hàng 'xem' và bạn đã hoàn tất.

Bây giờ bạn có thể thiết lập các cửa hàng và hành động khác. Bạn đã sẵn sàng để khởi tạo bộ điều khiển xem của bạn trong mã và sử dụng initWithNibName và tên nib của bạn để tải nó.

+0

frick. không có "với .xib cho giao diện người dùng" trong phiên bản mới nhất của xcode .... – matrixugly

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