Tôi đang gặp sự cố khi đặt Chế độ xem cửa sổ xem mặc định của Bộ điều khiển Xem trong Bộ dựng giao diện. Đây là thiết lập của tôi:UINavigationController NIB yêu cầu Chủ sở hữu tệp phải có chế độ xem?
Tôi có một ứng dụng TabBar dựa nơi tôi tải một điều khiển Navigation như một cái nhìn modal ...
MyNavCtrlrSubClass *menu = [[MyNavCtrlrSubClass alloc]initWithNibName:@"MenuController" bundle:nil];
[tabBarController presentModalViewController:menu animated:anim];
MenuController bản thân được cấu trúc như sau:
MenuController.xib File's Owner (MyNavCtrlrSubClass : UIViewController) Navigation Controller (UINavigationController) Navigation Bar (UINavigationBar) Root View Controller (Nib Name is set to load AnotherViewController.nib) Navigation Item -> (UINavigationItem)
này tất cả hoạt động tốt, ngoại trừ khi MyNavCtrlrSubClass được tải, tôi nhận được lỗi sau:
Loaded the "MenuController" nib but the view outlet was not set
Rõ ràng tại sao điều này xảy ra - Chủ sở hữu tệp không có kết nối đầu ra cho chế độ xem của nó. Câu hỏi đặt ra là tôi nên đặt chế độ xem như thế nào và có phải đặt một thứ gì đó ở vị trí đầu tiên không? Thanh điều hướng là ứng cử viên duy nhất trong MenuController.xib, nhưng làm điều này sẽ chỉ kích thước UINavigationBar chính nó vào chế độ toàn màn hình, vì vậy để nói chuyện.
Tôi rõ ràng thiếu thứ gì đó trong IB, nhưng sao? MyNavCtrlrSubClass.m không có mã, ngoại trừ IBOutlet cho UINavigationController. Tôi có mắc sai lầm khi cố thiết lập hoàn toàn điều này trong IB không? Ý tưởng là giữ cho Bộ điều khiển phương thức trong một nib, và tất cả các khung nhìn nó tải trong các ngòi riêng biệt, nhưng vì MenuController chỉ là một thùng chứa cho điều hướng và không chứa chính khung nhìn, tôi rõ ràng đang thiết kế nó sai. :)
Nếu bạn đang tự hỏi tại sao tôi không thiết kế theo cách khác, đó là vì tôi đang cố gắng tuân theo nhận thức của tôi về cách IB yêu cầu bạn xây dựng một hệ thống phân cấp lý tưởng.
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn bạn đã trả lời thông tin! Tôi sắp xem những gì tôi có thể làm với điều này và sẽ sớm đăng lại. Bây giờ, hãy để tôi hỏi: làm thế nào sau đó bạn sẽ tải một nib điều khiển điều hướng phương thức, thiết kế càng nhiều càng tốt trong giao diện Builder? Có cần thiết, như trong ví dụ của bạn, để thiết lập một bộ điều khiển View nib và sau đó tạo Bộ điều khiển Điều hướng theo lập trình, hoặc tôi có thể định nghĩa phân cấp khung nhìn trong IB một mình không? –
GHI CHÚ: có vẻ như việc tạo Bộ điều khiển Điều hướng có nghĩa là tôi cũng phải cài đặt hệ thống phân cấp bộ điều khiển xem theo cách lập trình, và sau đó tôi sẽ tiếp tục với IB, bắt đầu với bộ điều khiển điều hướng xuống. –
Bạn có thể tạo bộ điều khiển điều hướng và trình điều khiển chế độ xem gốc trong mã và tải chế độ xem cho trình điều khiển chế độ xem gốc trong IB. Nó sẽ không khó xử. Bạn cũng có thể tạo bộ điều khiển điều hướng và bộ điều khiển chế độ xem gốc trong một XIB riêng biệt từ chế độ xem của trình điều khiển chế độ xem gốc. XIB riêng biệt này thường là MainWindow.xib. Khi các tập tin MainWindow.xib được nạp hai bộ điều khiển xem sẽ được tạo ra. Khi trình điều khiển chế độ xem gốc cần xem lần đầu tiên, nó sẽ tải nó từ tệp XIB thứ hai. Đó là cách thông thường để làm điều này. –