Giả sử tôi tải bộ điều khiển chế độ xem từ ngòi bút, và quyết định làm điều gì đó với một trong các chế độ xem phụ của nó đằng sau cảnh. Tại một thời điểm sau đó, tôi sẽ hiển thị khung nhìn của bộ điều khiển khung nhìn này.Thực hiện chế độ xem (được khởi tạo từ initWithNibName) tải tất cả subview của nó
viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[viewController.someSubview doSomething];
//later on
[mainView addSubview:viewController.view];
Vấn đề là, đối tượng someSubview dường như không được nạp cho đến khi nhìn xuất hiện, vì vậy phương pháp doSomething không được gọi. Cho đến nay, giải pháp thay thế của tôi là gọi:
[mainView addSubview:viewController.view];
[viewController.view removeFromSuperview];
để khởi tạo các bản xem trước của chế độ xem trước. Có cách nào thanh lịch hơn (giống như phương thức loadSubviews hay gì đó) cho tác vụ này không?
Cảm ơn, mà đã làm nó. – iamj4de
@MarkAmery Apple cho bạn biết rõ ràng là không gọi hàm -loadView trong tài liệu: "Bạn không bao giờ nên gọi trực tiếp phương thức này. Trình điều khiển chế độ xem gọi phương thức này khi thuộc tính chế độ xem của nó được yêu cầu nhưng hiện không có. gán nó cho thuộc tính xem. " –
@MikeWeller Điểm tốt - Tôi chưa xem tài liệu đủ chặt chẽ để biết điều đó. Tôi đoán chúng ta phải lựa chọn giữa một trong hai hacks hơi xấu xí, sau đó. Về phần tôi, tôi có lẽ sẽ dính vào 'loadView' chỉ vì nó rõ ràng hơn, nhưng tôi thừa nhận rằng nó không phải là giải pháp sạch mà tôi nghĩ là vậy. –