2014-10-04 2 views
0

Я хочу адаптировать приложение к iPhone 6+ с помощью контроллера Split View. В настоящее время мое приложение представляет собой простой вид в таблице, содержащий мои статьи и подробный вид.Контроллер Split View для iPhone 6 Plus

Я хочу, чтобы мое приложение переключалось на разделенный вид, когда в ландшафтном режиме на iPhone 6 Plus, но я не знаю, как правильно это сделать.

Я создал новую раскадровку и интегрировал контроллер Split View, после чего я застрял. Я не знаю, как подталкивать свои новости к контроллеру подробного представления, когда я нажимаю на ячейку основного вида (который представляет собой представление таблицы). Я пытался добавить это в методе didSelectRowAtIndexPath:

[self.navigationController pushViewController:viewController animated:YES]; 

, но когда я делаю это, вид деталь выталкивается в левой части разделенного View (оригинал View).

Я также попытался добавить «показать» SEGUE между сотой Table View Controller и Detail View Controller, и добавить в методе didSelectRowAtIndexPath:

[self performSegueWithIdentifier:@"showDetails" sender:self]; 

но та же проблема, вид проталкивается внутрь Мастер-вид.

Другая проблема, в портретном режиме, по умолчанию View представляет собой подробный вид. Как я могу показать Мастер-представление?

Заранее благодарим за вашу помощь!

+0

поведение по умолчанию Master-Detail Контроллер просмотра - это толчок при переходе от мастера к деталям. Вы можете изменить его, чтобы Show Detail или Present Modally. – gabbler

ответ

0

С вашего контроллера уровня просмотра вы должны иметь доступ к самому SplitViewController, используя self.splitViewController. В SplitViewController есть свойство, viewControlers, которое представляет собой массив с двумя элементами: первый - это контроллер представления для мастера, второй - контроллер представления для стороны детали. В каждом случае верхний контроллер в иерархии обычно является навигационным контроллером. Итак, с вашего мастер-контроллера кода (Tableview), вы можете получить доступ к detailController что-то вроде:

UINavigationController *detailNav = self.splitViewController.viewController[1]; 
[detailNav pushViewController:viewController animated:YES]; 

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

+0

Спасибо, это сработало! – ThibaultV

0

Есть несколько блогов говорить о расколоть поведения зрения на прошивкой 8 с примерами кода:

Objective C

Swift

Очень ясно и полезно :)

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