Đặt tiện ích / chế độ xem trong một tệp .xib riêng biệt sẽ hoạt động và đặc biệt thích hợp nếu bạn có thể muốn tham chiếu cùng một chế độ xem đó từ nhiều Bộ điều khiển Chế độ xem.
Tuy nhiên, đôi khi bạn muốn xem chế độ xem / tiện ích con bổ sung trong cùng một bảng phân cảnh và điều đó hoàn toàn có thể. Đây là cách bạn làm điều đó:
Chọn bộ điều khiển chế độ xem của bạn trong IB (nhấp vào thanh màu đen bên dưới chế độ xem), sau đó kéo UIView từ Thư viện đối tượng vào thanh màu đen:
Khi một chế độ xem ở trong thanh màu đen, nó được khởi tạo giống như bất kỳ chế độ xem nào khác trong IB nhưng chỉ không được thêm vào hệ thống phân cấp chế độ xem của bạn cho đến khi bạn làm như vậy trong mã. Thay đổi lớp của chế độ xem để khớp với lớp con của riêng bạn nếu cần:
Bạn có thể kết nối nó với bộ điều khiển chế độ xem của mình giống như bạn kết nối với bất kỳ chế độ xem nào khác:
Chế độ xem đã thêm sẽ hiển thị trong Đề cương tài liệu của bạn và bạn cũng có thể kết nối các hành động và tham chiếu ở đó:
Bây giờ, vấn đề còn lại là bạn thực sự không thể nhìn thấy chế độ xem cho dù bạn cố nhấp hoặc nhấp đúp bao nhiêu lần, điều này sẽ đánh bại toàn bộ mục đích của việc đưa nó vào cùng một bảng phân cảnh. May mắn thay, có hai cách giải quyết mà tôi biết.
Cách giải quyết đầu tiên là kéo chế độ xem từ thanh màu đen trở lại chế độ xem của bộ điều khiển chế độ xem của bạn, chỉnh sửa nó, sau đó kéo chế độ xem trở lại thanh màu đen khi bạn đã hoàn tất. Điều này thật rắc rối nhưng đáng tin cậy.
Cách giải quyết khác phức tạp hơn, nhưng tôi thích nó hơn vì nó cho phép tôi xem tất cả các chế độ xem của mình cùng một lúc:
Kéo UITableView từ Thư viện đối tượng vào dạng xem mới được thêm vào của bạn.
Sau đó, kéo một UITableViewCell vào UITableView đó.
Khi bạn làm điều đó, chế độ xem của bạn sẽ bật ra một cách kỳ diệu ở bên cạnh, nhưng bạn có một UITableView mà bạn không muốn. Bạn có thể thay đổi kích thước thành 0x0 hoặc bạn có thể xóa nó và UIView của bạn (thường) sẽ vẫn hiển thị.
Đôi khi, chế độ xem phụ sẽ lại bị ẩn trong IB. Bạn có thể lặp lại các bước trên nếu đã xóa UITableView, hoặc nếu UITableView vẫn còn trong hệ thống phân cấp, bạn chỉ cần nhấp vào UITableViewCell và chế độ xem sẽ xuất hiện trở lại.
Phương pháp thứ hai hoạt động cho UIViews nhưng không tốt cho UIToolbars và không thể cho UIButtons, vì vậy giải pháp tốt nhất mà tôi đã tìm thấy khi bạn cần bao gồm nhiều lượt xem phụ khác nhau là đính kèm một UIView thứ cấp duy nhất vào bộ điều khiển chế độ xem của bạn như một vùng chứa không bao giờ được hiển thị, hãy đặt tất cả các chế độ xem phụ của bạn vào đó và sử dụng thủ thuật UITableViewCell để hiển thị mọi thứ. Tôi thay đổi kích thước UITableView giả của mình thành 0x0 để ẩn đi. Dưới đây là ảnh chụp màn hình về cách tất cả trông giống nhau:
xib
các bộ điều khiển chế độ xem của mình một cách riêng biệt và không có trong bảng phân cảnh không?