2011-01-25 47 views
12

Apple chỉ cung cấp chế độ xem chia cho cảnh quan chứ không phải cho chế độ dọc. Có cách nào để đạt được splitview trong chế độ chân dung không?Chế độ xem chia nhỏ ở chế độ dọc!

[splitViewController setHidesMasterViewInPortrait:NO]; 

Điều này sẽ hiệu quả. Nhưng API này không được ghi chép (riêng tư).

Cảm ơn,
Manjunath

Trả lời

23

Đối với iOS5 +,

Chuyển đến số detailViewController của bạn. detailViewController của bạn phải có UISplitViewControllerDelegate. Và chỉ cần thả mã này vào:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation{ 
    return NO; 
} 

Điều này sẽ thực hiện thủ thuật. Và đó là API công khai.

+1

Điều này không được chấp nhận trong iOS 8. – Joey

2

Hãy xem MGSplitViewController này.

Đây là bộ điều khiển chế độ xem chia nhỏ được tùy chỉnh với nhiều cải tiến hữu ích khác nhau. Chắc chắn rằng bạn có thể hiển thị chế độ xem chính theo chiều dọc.

0

Đôi khi trở lại tôi đã cố gắng để đạt được một điều tương tự. Sau khi thử mã của Matt, và không thành thật cố gắng để tạo ra một thể loại tôi nhận ra rằng cách duy nhất để làm điều này (theo cách mà Apple không từ chối ứng dụng của bạn) là sử dụng hai chế độ xem tùy chỉnh. Tham khảo câu hỏi this.

2
+0

Liên kết không còn hoạt động nữa. Tôi rất muốn nhìn thấy nó. – SAHM

+0

https://github.com/SlavaBushtruk/APSplitViewController – Mustafa

16

Đóng góp nhỏ của tôi ở đây. câu trả lời

Byte là đúng cho đến iOS 7. Bắt đầu từ iOS 8 bạn nên sử dụng preferredDisplayMode

Ví dụ, để hiển thị cả các bộ điều khiển xem ở chế độ dọc thực hiện như sau:

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 

Hope this helps !

+1

Tôi đã phân lớp UISplitViewController và đính kèm nó vào phần chia nhỏ trong bảng phân cảnh và trong viewdidload đặt self.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; – fellowworldcitizen

2

cập nhật trong iOS 8 xcode 6+

if let splitVCExists = self.splitViewController{ 
     splitVCExists.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible 
    }  

doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/index.html#//apple_ref/occ/instp/UISplitViewController/preferredDisplayMode

Một điều tôi đã thông báo là nó sẽ cố gắng để bố trí các splitviewcontroller dựa trên preferredDisplayMode miễn là có đủ không gian. nếu không nó sẽ chọn chế độ hiển thị để phù hợp với nội dung bên phải. Tôi đã sử dụng nó và nó đưa các VC ra như thế nào tôi muốn trong cả hai chân dung và phong cảnh.

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