2010-04-15 8 views
18

Tôi đã sử dụng UIViewController s và initWithNibName với nhiều thành công, về cơ bản sử dụng chúng như một cách thuận tiện để thiết kế chế độ xem với Trình tạo giao diện. Đáng tiếc là tôi đã xây dựng được một hệ thống các quan điểm trước khi nhận thấy dòng này trong tài liệu UIViewController:Cách tải UIView từ NIB?

Lưu ý: Bạn không nên sử dụng xem điều khiển để quản lý quan điểm rằng điền chỉ là một phần của cửa sổ của họ

Câu hỏi của tôi là: Có NIB rất đơn giản chỉ có UIView ngoài đối tượng phản hồi đầu tiên mặc định và đối tượng sở hữu, cách đơn giản nhất để tải UIView vào mã của tôi là gì?

Tôi chưa thể nhận được loadNibNamed:owner:options: để làm việc tại thời điểm này, nhưng nghi ngờ câu trả lời sẽ liên quan đến nó bằng cách nào đó.

Trả lời

29

Vâng, chỉ cần gọi

[[NSBundle mainBundle] loadNibNamed:@"viewNib" owner:self options:nil]; 

Bạn thường làm điều này từ bộ điều khiển xem bạn đã thiết lập như là Chủ đầu tư tập trong NIB. Bằng cách đó, bạn có thể khai báo một lối thoát cho khung nhìn trong bộ điều khiển xem sẽ tự động kết nối khi bạn tải tệp NIB. Bạn thậm chí không phải làm việc với giá trị trả về của phương thức trong trường hợp này.

+0

Cảm ơn, tôi đã thiếu phần 'mainBundle' – Winder

+1

Xin chào, một câu hỏi nhanh: cách tiếp cận này có xử lý trường hợp có lớp CustomView không? Nếu Chủ sở hữu tệp là bộ điều khiển chế độ xem, từ chế độ xem được khởi tạo, làm cách nào để tôi thực sự móc tất cả các phần tử trong nib (chẳng hạn như MyLabel) vào lớp CustomView IBOutlets? – aneuryzm

+0

Chỉ lớp của chế độ xem cho lớp tùy chỉnh của bạn trong IB và sau đó kết nối các cửa hàng. Không có sự khác biệt với những gì bạn sẽ luôn luôn làm. –