2012-07-03 19 views
9

Tôi đang xây dựng ứng dụng iPhone bằng bảng phân cảnh và tôi gặp sự cố với trình điều khiển thanh tab. Trên một trong các khung nhìn được liên kết từ bộ điều khiển thanh tab (view1), có một nút dẫn đến một chế độ xem khác (xem2). Trên View2, có một nút dẫn trở lại View1. Rất thẳng về phía trước. Nhưng khi tôi đi từ view1 đến view2, thanh tab biến mất, và thậm chí tệ hơn, khi tôi quay trở lại View1, thanh tab vẫn còn ... Làm cách nào để khắc phục điều đó? (Tôi chưa đặt bất kỳ mã nào trong ứng dụng, chỉ có bảng phân cảnh và quả táo cung cấp Lớp AppDelegate (và cũng là một tệp chính mà tôi cho là, nhưng tôi không có ý định chạm vào đó). đánh giá cao!Điều khiển Thanh tab biến mất khi di chuyển sang chế độ xem khác (SDK iOS, Sử dụng bảng phân cảnh)

+0

How are you trình bày quan điểm thứ hai? – Dustin

+0

khi Người dùng nhấp vào nút, nó chỉ chuyển họ đến View2 – byteSlayer

+0

Bạn có thực hiện bất kỳ thiết lập nào cho điều này không? Hay bạn chỉ cần sử dụng các chức năng của thanh tab. Từ vấn đề của bạn, có vẻ như bạn đang sử dụng một segue – Dustin

Trả lời

30

Nếu bạn làm một segue phương thức từ một cái nhìn đó là một cái nhìn thanh tab, nó sẽ thoát khỏi thanh tab cho xem phương thức bạn đang trình bày.

Thứ hai, khi bạn Segue bạn đang tạo một ví dụ mới của bộ điều khiển xem Vì vậy, tôi đoán bạn đang phân biệt từ view1 đến view2 và mất thanh tab, sau đó bạn đang segueing trở lại để xem1. Tại thời điểm này bạn đã tạo view1, view2 và một bản sao thứ hai của view1 không hav e một thanh tab.

Tôi sẽ đề xuất một trong hai điều.

1.) Nếu bạn muốn giữ các tab ở dưới cùng khi bạn phân biệt từ view1 đến view2, sau đó nhấp vào view1, ở phía trên cùng của màn hình chọn Editor/Embed In/Navigation Controller. Điều này sẽ nhúng view1 của bạn trong bộ điều khiển điều hướng. Sau đó, nếu bạn thay đổi segue của bạn từ phương thức để đẩy nó sẽ giữ thanh tab của bạn ở phía dưới. Thanh điều hướng ở trên cùng cũng giúp bạn dễ dàng quay lại từ chế độ xem 2 để xem 1 cách chính xác (bằng cách bật chế độ xem) thay vì tạo một phân đoạn mới. Nếu bạn không thích thanh điều hướng, thì bạn có thể thay đổi thuộc tính "Top Bar" thành "None" trong thanh tra. Sau đó, bạn sẽ cần tạo một số cách khác trong view2 để quay lại chế độ xem1. (BY POPPING THE CONTROLLER, NOT BY SEGUEING)

2) Nếu bạn không muốn thiết lập bộ điều khiển điều hướng, bạn sẽ gặp khó khăn hơn một chút trong việc giữ thanh tab ở dưới cùng của bộ điều khiển view2. Trong thực tế, tôi không chắc chắn bạn có thể làm điều đó ở tất cả với một segue phương thức, bạn có thể phải viết một số loại segue tùy chỉnh. Dù bằng cách nào, Nếu bạn muốn chuyển sang chế độ xem1 và nhận được bộ điều khiển chính xác (không phải phiên bản mới không có các tab) thì bạn cần đính kèm một hành động vào bất kỳ nút nào bạn đang sử dụng để phân biệt và sử dụng mã sau đây (tôi cũng đính kèm mã cho segues đẩy điều khiển chuyển hướng, trong trường hợp bạn tạo một bộ điều khiển chuyển hướng và thoát khỏi thanh điều hướng)

đối với phương thức Segue:.

[self dismissModalViewControllerAnimated:YES]; 

đối đẩy segue:

[self.navigationController popViewControllerAnimated:YES]; 

Đặt cược tốt nhất của bạn là sử dụng điều hướng phương pháp điều khiển, như bạn được đảm bảo để giữ các tab của bạn. Sau đó, bạn có thể sử dụng thanh điều hướng để quay lại (cách dễ dàng, không cần mã) hoặc bạn có thể loại bỏ nó và sử dụng nút và mã ở trên.

Chúc may mắn!

+0

Thnks cho câu trả lời chi tiết. Nó rất hữu ích! – byteSlayer

+0

Tôi đã sử dụng giải pháp 1. Nhưng khi tôi đã làm (chọn xem # 1), tôi có hai bộ điều khiển điều hướng vì tôi đã có một trong bảng phân cảnh của mình. Tôi đã xóa bộ điều khiển điều hướng chính nằm phía sau bộ điều khiển thanh tab của tôi. Thay vào đó tôi sử dụng một bộ điều khiển nav như thế này. điều khiển thanh tab -> nav bar controller -> bảng điều khiển -> chi tiết bảng điều khiển. Vì vậy, đối với mỗi tab, tôi có bộ điều khiển nav độc lập riêng. Có thể có một cách chia sẻ của việc sử dụng một bộ điều khiển nav nhưng nó có vẻ là làm việc khá tốt. –

+0

Vâng, đó chính là cách tôi đã thực hiện nó trên một vài dự án. Đó là những gì tôi đã cố gắng để miêu tả ở trên. –

2

Tôi gặp vấn đề tương tự, tôi biết đây là một câu hỏi cũ nhưng [self dismissModalViewControllerAnimated:YES]; không được dùng nữa trong iOS 6.

gì tôi được sử dụng là:

[self dismissViewControllerAnimated:YES completion:nil];

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