UISplitViewController на iPad с раскадровками? - PullRequest
6 голосов
/ 14 февраля 2012

enter image description here

В Xcode, как я могу создать простое приложение для iPad, которое использует раскадровки так, чтобы контроллер DetailView заменялся на каждую запись?Большинство примеров, которые я видел, используют iPhone, или они просто меняют значения в одном контроллере подробного представления.

Я хочу создать сегменты в Интерфейсном Разработчике из статического контроллера TableView (скажем, с 3 рядами), где каждая строка будет загружать отдельный контроллер представления подробностей игры, который я бы перетянул и спроектировал в IB.В настоящее время, когда я подключаю контроллер представления с помощью segue, он заменяет навигационную часть UISplitViewController.Другими словами, я как будто пересекаю дерево, и мне нужно сообщить IB, что я нахожусь в корневом узле и мне нужно изменить подробный вид.

Ответы [ 3 ]

18 голосов
/ 09 апреля 2012

Хорошей отправной точкой для segues являются лекции 6 и 7 из Стэнфорда CS193p, осень 2011 г.

http://itunes.apple.com/us/itunes-u/ipad-iphone-application-development/id473757255

Инструктор, Пол Хегарти, покрывает все. Однако у него заканчивается время до конца занятия, чтобы ответить на этот вопрос. Он включает источник с окончательным решением в файл: Психолог с доктором Пилл.zip.

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall

По сути, все, что нужно сделать для этого вопроса, - это перетащить Ctrl с каждой UITableCell на соответствующие контроллеры представления подробностей игры, а затем выбрать переход Replace. Есть еще один шаг, потому что контроллер представления сократится, потому что по умолчанию Xcode думает, что вы хотите заменить главный контроллер. Для каждого из сегментов выберите линию соединения и в инспекторе Атрибутов измените пункт назначения с «Мастер-разделение» на «Разделение деталей». На этом этапе вы можете выполнить тестирование с помощью всплывающего окна без написания кода.

Master Split Destination

Detail Split Destination

Solution

1 голос
/ 23 октября 2013

Apple предоставила пример кода более общего решения проблемы о том, как поменять различные подробные представления на основе того, что выбрано в главном представлении. Пример кода Apple выполняет это путем введения пользовательской реализации протокола UISplitViewControllerDelegate:

https://developer.apple.com/library/ios/samplecode/MultipleDetailViews/Introduction/Intro.html

0 голосов
/ 23 марта 2012

Трудно описать без картинок, но: в качестве основного устройства выберите навигационный контроллер.Затем повесьте каждый подробный вид с этим именем, которое заменяет.Тогда вам нужно немного кода.В вашем главном viewcontroller внутри didSelectRowAtIndexPath вам нужен оператор switch, основанный на indexpath.row, и в каждом вызове строки detailview executeSegueWithIdentifier: @ "нужная строка"

...