Детализация контроллера для iOS iPad Master-Detail

#ios #ipad #uisplitviewcontroller #master-detail

#iOS #iPad #uisplitviewcontroller #мастер-детализация

Вопрос:

Я пытаюсь создать приложение для iPad с основным принципом детализации, поэтому я использую UISplitViewController . Проблема в том, что я хочу другого поведения для приложения, потому что иногда детальный просмотр идет глубже. Итак, я хочу, чтобы детальный вид стал основным видом и загрузил новый вид как деталь. Чтобы привести вам пример, допустим, у меня есть ViewController1 , ViewController2 и ViewController3 . При нажатии на ссылку из (master) ViewController1 ViewController2 рядом с ней должна отображаться (detail). Теперь, если пользователь нажимает на ссылку ViewController2 , ViewController1 она должна исчезнуть ViewController2 , должна занять свое место и ViewController3 должна быть показана. Каков наилучший способ сделать что-то подобное, потому что я не могу этого сделать с UISplitViewController помощью.

Комментарии:

1. Вы читали документацию? developer.apple.com/library/ios/documentation/uikit/reference /… или developer.apple.com/library/ios/search /? q = uiviewcontroller

2. вы не прочитали весь вопрос, не так ли? Он не работает с splitViewController так, как я этого хочу

3. Конечно, я прочитал «весь вопрос», прежде чем комментировать! Вам нужно прочитать документацию, и там все предусмотрено. Также проверьте это: developer.apple.com/library/ios/documentation/UIKit/Reference /…

4. Я говорю об iPad, чтобы у меня было 2 контроллера рядом друг с другом на одном экране. Лучший способ, конечно, использовать splitController, но я хочу совершенно другое поведение для навигации, и я пытаюсь выяснить, какое лучшее решение

Ответ №1:

По умолчанию шаблон разделенного представления предоставляет вам навигационный контроллер как для основной, так и для подробной сторон. Я бы посмотрел на создание a ViewController2B , которое использует ту же модель данных ViewController2 , что и, а затем синхронизирует push / pop, чтобы 1 и 2 переключались с 2B и 3 как одна операция.

Комментарии:

1. Это решение, но, допустим, я хочу реализовать решение, которое я предлагаю, без необходимости синхронизации и использования одного и того же контроллера дважды. Каков наилучший способ сделать что-то подобное? Может быть, с помощью пользовательского контейнера?

2. Я не уверен, что это было бы проще, но это, безусловно, сработало бы. Если у вас есть пользовательский контроллер контейнера, вы можете заставить дочерние представления контроллера вести себя так, как вы хотите.

Ответ №2:

ОК. Теперь я понял проблему. Я не совсем уверен, полезно ли это вообще, но иногда эти пользовательские элементы управления весьма полезны. Вы их проверили? Они могут помочь вам реализовать код в вашем собственном проекте или, может быть, просто использовать их?

  1. https://github.com/mdznr/MTZSplitViewController

  2. https://github.com/mattgemmell/MGSplitViewController

  3. https://github.com/sergik-ru/SMTabbedSplitViewController (Немного отличается)

Надеюсь, это поможет.

Комментарии:

1. Да, но они также используют splitController, и настраивается только внешний вид, а не навигация. Полагаю, мне придется использовать контроллер контейнера. Хотя спасибо