2011-01-25 2 views
12

Apple предоставляет разделенный вид только для пейзажа, но не для портретного режима. Есть ли способ достичь splitview в портретном режиме?Сплит-просмотр в портретном режиме!

[splitViewController setHidesMasterViewInPortrait:NO]; 

Это будет работать. Но этот API не документирован (частный).

Спасибо,
Manjunath

ответ

23

Для iOS5 +,

Перейти к вашему detailViewController. Ваш detailViewController должен иметь UISplitViewControllerDelegate. И просто переместите этот код в:

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

Это будет трюк. И это общедоступный API.

+1

Это устаревшая прошивка 8. – Joey

2

Взгляните на эту MGSplitViewController.

Это индивидуальный контроллер с раздельными изображениями с различными полезными улучшениями. Конечно, вы можете показать главный вид в портрете.

0

Когда-то назад я попытался добиться подобной вещи. После того, как вы попробовали код Мэтта и не поняли, пытаясь создать категорию, я понял, что единственный способ сделать это (так, что Apple не отклоняет ваше приложение) - использовать два пользовательских представления. См. Вопрос this.

2

Посмотрите на APSplitViewController.

+0

Ссылка не активна. Мне бы очень хотелось это увидеть. – SAHM

+0

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

16

Мой маленький вклад здесь. Ответ

Byte является не исправит вплоть до прошивки 7. Начиная с прошивкой 8 следуешь использовать preferredDisplayMode

Например, чтобы показать оба контроллер просматривать в портретном режиме выполните следующие действия:

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 

Надеется, что это помогает !

+1

я подклассы в UISplitViewController и прикрепил его к SPLITVIEW в раскадровке и в viewdidload поставил self.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; – fellowworldcitizen

2

обновление в IOS 8 Xcode 6+

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

документ: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/index.html#//apple_ref/occ/instp/UISplitViewController/preferredDisplayMode

Одна вещь, которую я действительно замечал, что он будет пытаться макет splitviewcontroller на основе preferredDisplayMode до тех пор, пока существует достаточно пространство. в противном случае он выберет режим отображения, чтобы он соответствовал правильному контенту. Я использовал его, и он закладывает VC, как я хочу как в портретной, так и в альбомной ориентации.

Смежные вопросы