2010-09-21 43 views
7

Tôi đang gặp sự cố với ứng dụng iPad, nơi tôi muốn có UINavigationControllers trong cả hai chế độ xem trong UISplitView. Tôi đã xem qua các câu hỏi tương tự khác ở đây, nhưng hầu hết liên kết đến một hướng dẫn trực tuyến không hoàn toàn giải quyết được vấn đề. Dưới đây là 2 phút để tạo lại sự cố mà tôi đang gặp phải:Tôi có thể sử dụng UINavigationController làm chế độ xem chi tiết của UISplitViewController không?

  1. Tạo dự án mới trong XCode, bắt đầu từ mẫu ứng dụng dựa trên chế độ xem phân tách.
  2. Thêm các báo cáo NSLog sau như dòng đầu tiên trong phương pháp willHideViewController của DetailViewController:

    NSLog (@ "trên thanh công cụ:% @", thanh công cụ);

Nếu bạn chạy ứng dụng ngay bây giờ, nhật ký sẽ cho thấy thanh công cụ DetailViewController vẫn còn hoạt động. Bây giờ ...

  1. Mở MainWindow.xib và mở rộng SplitViewController.
  2. Kéo Trình điều khiển Điều hướng từ thư viện trên đầu trang của DetailViewController.
  3. Mở rộng Trình điều khiển Điều hướng mới và thay đổi lớp của UIViewController bên trong thành một DetailViewController.
  4. Ctrl-kéo từ SplitViewController đến DetailViewController và gán nó làm đại biểu.
  5. Lưu MainWindow.xib và chạy lại ứng dụng.

Tại thời điểm này, chế độ xem chi tiết có thanh điều hướng và thanh công cụ trống. Nếu bạn xem các bản ghi, bạn sẽ thấy rằng thanh công cụ là null. Tại sao điều này? Tôi có thiếu một số loại kết nối trong Interface Builder không? Thanh điều hướng có phải là vấn đề vì một số lý do không?

Không giống như hướng dẫn tại http://www.cimgf.com/2010/05/24/fixing-the-uisplitviewcontroller-template/, tôi muốn giữ cả thanh điều hướng và thanh công cụ (tốt nhất là với thanh công cụ ở trên cùng khi ở dọc và không hiển thị khi ở ngang) để tôi vẫn có chức năng "Quay lại "khi iPad đang ở hướng dọc.

Có ai có bất kỳ đề xuất nào để khắc phục sự cố này không? Một dự án ví dụ với loại thiết lập này sẽ là lý tưởng.

+0

@B Sweigard: Hi, có bao giờ bạn giải quyết vấn đề của bạn? Tôi đang cố gắng làm gần như chính xác như bạn đã cố gắng. – matm

Trả lời

0

Tôi đã tìm thấy UISplitViewController tích hợp để hoạt động kém khi cố gắng kết hợp nó với hầu hết các lớp con bộ điều khiển xem được tích hợp sẵn khác. Matt Gemmell của MGSplitViewController là linh hoạt hơn rất nhiều và đã làm việc khá tốt cho tôi, mặc dù những trục trặc kỳ lạ (mặc dù những người ít nhất là fixable như mã nguồn được cung cấp).

1

Bạn chắc chắn có thể sử dụng bộ điều khiển điều hướng trên giao diện chi tiết của bộ điều khiển chia tách. Trên thực tế, ứng dụng Cài đặt iPad sử dụng phương pháp này. Có lẽ cách tốt nhất để cài đặt này là tạo một dự án mới trong Xcode 4.x và chọn mẫu "Ứng dụng chi tiết chính". Nó sẽ tạo ra một bộ điều khiển xem chia tách với 2 bộ điều khiển điều hướng, một cho chế độ xem trái và một cho chế độ xem phù hợp.

Để đặt câu hỏi trên thanh công cụ của bạn, để đơn giản, tôi sẽ đặt thanh công cụ ở dưới cùng. Bạn vẫn có thể đặt các mục nút thanh trên thanh điều hướng trên cùng, mặc dù bạn chỉ có thể đặt chúng ở bên trái, giữa hoặc bên phải. Nếu bạn cần nhiều mục trên thanh trên cùng, một cách là thêm thanh công cụ vào chế độ xem chi tiết và ẩn thanh điều hướng trong sự kiện viewWillAppear của lớp chế độ xem chi tiết.

Dưới đây là một ví dụ về cách ẩn thanh điều hướng và hiển thị thanh công cụ:

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    self.navigationController.toolbarHidden = NO; 
    self.navigationController.navigationBarHidden = YES; 
} 
Các vấn đề liên quan