2012-06-18 5 views
0

Я использую раскадровки для довольно простого приложения MasterDetail. Мастер показывает список услуг, которые имеют разные типы. Каждый тип сервиса имеет свой собственный ViewController. Поэтому, в зависимости от выбранного типа сервиса, я хочу перейти к другому ViewController. Как я могу это сделать?Раскадранты: как перейти к разному viewControllers условно

ответ

2

Вы можете создать segues от контроллера главного вида к каждому из пунктов назначения и дать каждому из них семантический идентификатор (на панели инспектора). Затем в каком-то обратном вызове IBAction, когда элемент нажат в главном, вы можете вызвать [self performSegueWithIdentifier: передача соответствующего идентификатора в зависимости от того, что было нажата.

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

+0

Благодарим за отзыв. У моего контроллера главного представления есть прототип ячеек с подробным раскрытием, и я пытался использовать push-сегу. Но редактор раскадровки не позволяет мне добавить несколько контроллеров представления назначения. Что мне не хватает? – mezulu

+0

От любой одной кнопки может быть только один сегмент; но вы можете создать множество segues с одного контроллера представления (каждый с уникальным идентификатором). Поэтому вместо того, чтобы использовать segues непосредственно из кнопок (или элементов управления раскрытием), используйте немного кода для выполнения названного segue вместо этого, вероятно, из метода tableView: accessoryButtonTappedForRowWithIndexPath: для делегата вашего табличного представления. –

+0

Спасибо! Это должно сработать. – mezulu

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