2011-12-04 30 views
58

Khi xem được nạp bằng tay, nhà phát triển vẫn còn trong kiểm soát khi nói đến khởi tạo, chúng tôi chọn những gì initializer để gọi, những gì biến để thiết lập, vvChế độ xem được khởi tạo như thế nào khi được tải qua bảng phân cảnh?

Khi xem được nạp từ segue kịch bản ... những gì xảy ra với initializer? Các biến nên được đặt ở đâu mà tôi muốn có khi lượt xem đã được tải?

Vui lòng giúp tôi hiểu chuỗi ở đây. Làm thế nào là trường hợp của lớp được tạo ra ở đây, người tạo ra nó và làm thế nào chúng ta có thể can thiệp và giúp thiết lập nó theo ý thích của chúng ta?

Trả lời

89

Khi chế độ xem được tải từ ngòi hoặc bảng phân cảnh, phương pháp này được gọi là -initWithCoder:. Giống như -initWithFrame:, -initWithCoder: là trình khởi tạo được chỉ định cho UIView. Nếu bạn định thực hiện bất kỳ khởi tạo tùy chỉnh nào cho lớp con UIView, bạn nên đảm bảo rằng nó xảy ra cho cả hai phương thức này. Một kỹ thuật phổ biến là thêm phương thức khởi tạo chung mà bạn gọi từ cả hai số -initWithFrame:-initWithCoder:. Xem my answer đến Custom view and implementing init method? để biết mô tả chi tiết hơn.

Lưu ý rằng các tài liệu cho -initWithFrame: giải thích:

Nếu bạn sử dụng giao diện Builder để thiết kế giao diện của bạn, phương pháp này được không được gọi khi đối tượng xem bạn đang sau đó tải từ ngòi tập tin. Các đối tượng trong một tệp nib được tái tạo và sau đó khởi tạo sử dụng phương thức initWithCoder: của chúng, điều này sẽ sửa đổi các thuộc tính của chế độ xem để khớp với các thuộc tính được lưu trữ trong tệp nib.

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