Я хотел бы получить SplitView в своем приложении iPad с моим левым меню в портретной ориентации, такой как настройки iPad. В настоящее время в портретной ориентации у меня есть просмотр содержимого в полноэкранном режиме, и у меня есть кнопка в NavigationBar, которая включает popover с моим левым меню.
IPad SplitViewController с меню в портретном режиме, например, с настройками
Ответ 1
Это волшебство, в котором вы нуждаетесь:
Этот метод находится в UISplitViewControllerDelegate, доступном на iOS 5.0
- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
{
return NO;
}
Ответ 2
Вам обязательно нужно взглянуть на Мэтта Геммелла MGSplitViewController.
MGSplitViewController является открытым замена источника для UISplitViewController с различными полезные улучшения.
Ответ 3
К сожалению, это недокументированный метод (т.е. частный API).
[splitViewController setHidesMasterViewInPortrait:NO];
Я думаю, вам нужно создать пользовательский контроллер представлений, содержащий представление таблицы (как главный контроллер) и другое общее подвью (как контроллер детали), чтобы имитировать это.
Ответ 4
Самый простой способ получить желаемый эффект - просто не использовать UISplitView
. Вместо этого просто создайте нормальный вид, поместите его на левую сторону, ваш подробный вид с правой стороны, а затем настройте атрибут автозагрузки соответствующим образом, чтобы все выглядело как в портретном, так и в ландшафтном.
Ответ 5
Так как shouldHideViewController
устарел в iOS8, вам нужно будет использовать это вместо (Swift):
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
Ответ 6
Как указано ccwasden, shouldHideViewController
устарел с iOS8. В Objective-C используйте...
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
Ответ 7
некоторые люди задали мне тот же вопрос в нашем блоге, и я нашел решение для этого. Вы найдете его в конце моего сообщения в блоге Ваш первый контроллер с разделенным представлением | Море.
В общем, все, что вам нужно сделать, это создать подкласс UISplitViewController
и переопределить метод willAnimateRotationToInterfaceOrientation: duration:
и отрегулировать основные и подробные представления, когда ориентация интерфейса изменится на портретный режим.
Cheers, Andreas
Ответ 8
В Свифте:
splitViewController.preferredDisplayMode =.allVisible