Я использую раскадровки для довольно простого приложения MasterDetail. Мастер показывает список услуг, которые имеют разные типы. Каждый тип сервиса имеет свой собственный ViewController. Поэтому, в зависимости от выбранного типа сервиса, я хочу перейти к другому ViewController. Как я могу это сделать?Раскадранты: как перейти к разному viewControllers условно
0
A
ответ
2
Вы можете создать segues от контроллера главного вида к каждому из пунктов назначения и дать каждому из них семантический идентификатор (на панели инспектора). Затем в каком-то обратном вызове IBAction, когда элемент нажат в главном, вы можете вызвать [self performSegueWithIdentifier: передача соответствующего идентификатора в зависимости от того, что было нажата.
Существует несколько вариантов получения этого обратного вызова, и это зависит от характера вашей модели и того, как вы хотите, чтобы они отображались. Могут быть кнопки, индивидуальные распознаватели жестов или один основной распознаватель жестов, который выполняет некоторые тесты на удар, чтобы определить, что было нажато.
Благодарим за отзыв. У моего контроллера главного представления есть прототип ячеек с подробным раскрытием, и я пытался использовать push-сегу. Но редактор раскадровки не позволяет мне добавить несколько контроллеров представления назначения. Что мне не хватает? – mezulu
От любой одной кнопки может быть только один сегмент; но вы можете создать множество segues с одного контроллера представления (каждый с уникальным идентификатором). Поэтому вместо того, чтобы использовать segues непосредственно из кнопок (или элементов управления раскрытием), используйте немного кода для выполнения названного segue вместо этого, вероятно, из метода tableView: accessoryButtonTappedForRowWithIndexPath: для делегата вашего табличного представления. –
Спасибо! Это должно сработать. – mezulu