Подтвердить что ты не робот

IPad SplitViewController с меню в портретном режиме, например, с настройками

Я хотел бы получить SplitView в своем приложении iPad с моим левым меню в портретной ориентации, такой как настройки iPad. В настоящее время в портретной ориентации у меня есть просмотр содержимого в полноэкранном режиме, и у меня есть кнопка в NavigationBar, которая включает popover с моим левым меню.

4b9b3361

Ответ 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