Ios Как переходить с одного взгляда в контроллер разделения экрана

У меня есть два шаблонных представления (один - это один вид, а другой - контроллер сплит-представлением), каждый из которых отлично работает. Поэтому я помещаю кнопку в Single View и нажимаю кнопку Push Segue на кнопку, чтобы перейти к контроллеру Split View. Когда я нажимаю кнопку, я получаю сообщение о сбое, которое можно использовать с помощью внешнего навигационного навигатора Contuller.

Итак, я поместил единственный шаблон представления в контроллер навигации UI, и теперь он говорит: "Сплит-просмотр контроллеров не может быть перенесен на контроллер навигации".

Итак... как это сделать?

Спасибо!

Ответ 1

Использовать представление контейнера в обычном View Controller, покрывая всю область просмотра, и этот вид контейнера имеет встроенный сегмент для контроллера разделенного вида

Перезаписать UISplitViewController и поместить его в viewDidLoad, если вам нужно установить связь между ними:

YourLeftVC *masterViewController = (YourLeftVC *) [[self.viewControllers objectAtIndex:0] topViewController];
YourRightVC *detailViewController = [self.viewControllers objectAtIndex:1];

masterViewController.delegate = detailViewController;

Ответ 2

Вместо представления splitviewcontroller попробуйте установить в качестве rootviewcontroller.

self.view.window.rootViewController = splitViewController;

Ответ 3

Согласно документации на яблоки https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html

Контроллер разделенного представления всегда должен быть корнем любого создаваемого вами интерфейса. вы всегда должны устанавливать представление из объекта UISplitViewController в виде корневого представления вашего окна приложений.

Что вы можете сделать здесь, это создать пользовательский режим splitview.

Ответ 4

В худшем случае вы можете создать второй UIViewController, чтобы сделать push, и на нем контейнер с UISplitViewController как root.

Ответ 5

Установите свой сегмент в модальный, а не нажмите, чтобы это сделать.

ИЗМЕНИТЬ

На самом деле это не работает. То, что вы можете попробовать, заключается в том, чтобы поместить ваш splitView в другой раскадровки, а в вашем buttonClicked: метод представить его в коде:

В SigleView.m:

- (IBAction)buttonClicked:
{
    SplitViewController *splitVC = [[UIStoryboard storyboardWithName:@"SplitStoryBoard" bundle:nil] instantiateViewController];
    [self presentViewController:splitVC animated:YES completion:nil];
}

EDIT2

То, что написано ранее, также не работает. Мне действительно интересно, можете ли вы представить splitViewController (т.е. Не сделать его rootViewController).

Но вы можете сделать следующее:

Установите свой splitView в качестве корневого элемента вашего приложения, представив в модуле ваш singleView при запуске и всякий раз, когда вы хотите просто отпустить его, чтобы позволить splitView управлять. Будет иметь тот же эффект, что и ваш singleView, представляющий splitView.