2014-12-05 21 views
16

Tôi có một ứng dụng có màn hình đăng nhập và khi người dùng đăng nhập, bộ điều khiển thanh tab được đẩy. Hiện tại, tôi có một số quan điểm sẽ được hưởng lợi từ việc Apple cho phép sử dụng bộ điều khiển chia tách trong tất cả các thiết bị iOS, vì vậy tôi đã chuẩn bị thực hiện điều này khi tôi đọc rằng UISplitViewController phải luôn là bộ điều khiển chế độ xem gốc. Vì vậy, tôi đã tự hỏi nếu nó có thể làm cho xem trong một trong các tab trở thành một cái nhìn chi tiết tổng thể bằng cách sử dụng một UISplitViewController hoặc tôi sẽ cần phải thực hiện điều này bằng tay?UISplitViewController bên trong thanh tab

Trong trường hợp không thể hiển thị chế độ xem phân tách dưới dạng tab, nó có thể được đẩy từ bộ điều khiển thanh tab không? (ví dụ: người dùng nhấn vào một hàng trong chế độ xem bảng và chế độ xem chi tiết chính sẽ xuất hiện).

+0

gì bạn yêu cầu, đã được trả lời [ở đây ] (http://stackoverflow.com/questions/7952214/tabbarcontroller-and-splitviewcontroller/33817369#33817369) – user3298158

Trả lời

20

Bạn chắc chắn có thể nhúng UISplitViewController vào trong một UITabBarController. Tôi đã làm điều đó cho một ứng dụng tôi đã phát hành trên App Store. Nó có 3 tab và mỗi tab là một bộ điều khiển chia tách.

Chỉ cần kéo bộ điều khiển thanh tab vào Bảng phân cảnh của bạn, xóa hai bộ điều khiển được thêm vào, sau đó kéo ra một bộ điều khiển chế độ xem chia tách. Kéo điều khiển từ bộ điều khiển thanh tab đến bộ điều khiển chia tách và chọn phân tách mối quan hệ "bộ điều khiển chế độ xem".

Trên phiên bản Xcode ít hơn Xcode 8, bạn có thể thấy các thanh màu đen hoặc trắng ở trên cùng và dưới cùng của bộ điều khiển chia tách trong canvas của Trình tạo giao diện, nhưng chúng sẽ không xuất hiện khi ứng dụng chạy trên thiết bị.

enter image description here

Đây là ứng dụng đang chạy để hiển thị các điểm chia nhúng bên trong bộ điều khiển thanh tab trên iPhone 6s Plus:

enter image description here

+0

Tôi sẽ thử điều này ngay bây giờ và cho bạn biết. Ứng dụng của bạn có chạy trên iPhone không?Ngoài ra, nó cũng có thể đẩy một bộ điều khiển xem chia tách? –

+0

Có, nó chạy trên iPhone và iPad (iOS 8 và 7 - nó tương thích ngược nếu bạn làm tất cả trong Interface Builder). Tôi đã không cố gắng để đẩy một vào ngăn xếp chuyển hướng, vì vậy tôi không chắc chắn về điều đó. – Joey

+1

tôi đã thử phương pháp này nhưng như bạn có thể thấy trong hình ảnh có một vùng trắng trống phía trên TabItem trong SplitViewController. Bạn đã xử lý như thế nào? Tôi không thể loại bỏ nó và đã từ bỏ bằng cách sử dụng SplitViewController trong TabBarConroller kể từ khi táo không đề nghị nó quá. xem https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html – mehmet6parmak

4

Ngoài ra còn có một vấn đề sử dụng phương pháp này trong iPhone (> IOS8) nơi splitviewcontroller đang ở chế độ thu gọn. Khi chúng tôi đẩy chế độ xem danh sách vào chế độ xem chi tiết, chúng tôi không thể ẩn thanh điều khiển tab bằng cách sử dụng thông thường "hidesBottomBarWhenPushed". Vì vậy, tôi đã thêm các TabBarcontroller là root viewcontroller của một navigationcontroller. Bây giờ khi tôi đẩy đến xem chi tiết, tôi gửi thông báo đến trình điều khiển điều hướng gốc và đẩy chế độ xem đến ví dụ chế độ xem trong chế độ thu gọn trong khi ở chế độ thông thường tôi chỉ cần đẩy nó bằng cách sử dụng showDetailsViewController()

+0

Đây là một cách tiếp cận thực sự thú vị. Điều này vẫn làm việc cho bạn? Vì vậy, bạn có một Nav (với Tab gốc) là bộ điều khiển ban đầu cho ứng dụng ... Tôi thực sự thích ý tưởng này nhưng có vẻ như một chút hackish và tôi cảm thấy như bất cứ điều gì hackish cuối cùng có hậu quả tiêu cực. Nhưng tôi phải thừa nhận, đây là một ý tưởng rất hấp dẫn khi tôi đã cố gắng mãi mãi để có được điều này để làm việc ... – SAHM

+0

làm thế nào u gửi tin nhắn đến bộ điều khiển xem gốc? @AllenLee – vinbhai4u

6

Khi bạn đặt UISplitViewController bên trong một UITabBarController và thanh tab được đặt bằng opaque bạn có một vấn đề mà nội dung UISplitViewController của bạn được chuyển lên kích thước của thanh tab:

enter image description here

để khắc phục vấn đề này, bạn phải kiểm tra Dưới Bars Opaque hộp kiểm trên UISplitViewController của bạn trong kịch bản của bạn:

enter image description here

Và bây giờ là UISplitViewController xem kích thước được tính toán một cách chính xác:

enter image description here

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