Использование нескольких подробных видов с контроллером разделения вида - PullRequest
5 голосов
/ 02 октября 2011

Как вы знаете, UISplitViewController имеет только один корневой контроллер и один контроллер подробного просмотра, но я хочу использовать другой контроллер подробного просмотра.

Когда я выбираю элементы списка из корневого контроллера (popoverконтроллер), выбор должен запускать различные подробные представления - то есть строка 1 запускает подробное представление1, строка 2 запускает подробное представление2, а элемент кнопки запускает подробное представление3 и т. д. Как я могу добиться этого?

Ответы [ 4 ]

5 голосов
/ 11 ноября 2014

Этот проект от Apple с 2012 года и не использует раскадровки. Если вы ищете решение без надписей, оно будет работать нормально, но в Xcode 6 вы должны воспользоваться преимуществами новой функции Show Detail в раскадровках.

Вот краткий пример проекта , который показывает, как использовать несколько контроллеров подробного представления в одном и том же разделенном виде с помощью перехода Show Detail из Master View Controller.

5 голосов
/ 02 октября 2011

Есть проект от Apple, который охватывает именно то, что вам нужно. MultipleDetailViews

Этот пример показывает, как вы можете использовать UISplitViewController для управления несколько подробных видов.

Приложение использует контроллер разделенного представления с табличным представлением контроллер в качестве корневого контроллера. Когда вы делаете выбор в представление таблицы, новый контроллер представления создан и установлен как разделение второй контроллер представления контроллера.

Контроллер корневого представления определяет протокол (SubstitutableDetailViewController), что контроллеры подробного представления должны принять. Протокол определяет методы, чтобы скрыть и показать кнопку панели элемент управления поповером.

0 голосов
/ 12 апреля 2019

In Swift

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let storyBoard = UIStoryboard(name: "Main", bundle: nil)
    let imageGalleryVC = storyBoard.instantiateViewController(withIdentifier: "ImageGallerySID") as! ImageGalleryViewController
    splitViewController?.showDetailViewController(imageGalleryVC, sender: nil)
}
0 голосов
/ 22 августа 2018

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

Встраивая каждый подробный контроллер в свой собственный навигационный контроллер и связывая его с главным представлением с каждым с помощью сеанса 'show detail', вы можете добиться этого результата переключения между представлениями, используя связанный идентификатор, а затем - с главного Функция представления «didSelectRowAt», выбирающая строку, - это место, где вы можете выбрать, какой подробный вид вы хотите видеть.

if indexPath.row == 0 {
    performSegue(withIdentifier: "secondView", sender: self)
}
if indexPath.row == 1 {
        performSegue(withIdentifier: "thirdView", sender: self)
    }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...