2015-09-04 3 views
3

Я не могу найти ответ на этот, казалось бы, основной вопрос. Предположим, у меня есть раскадровка с двумя контроллерами A и B, и переход segue от одного к другому. Теперь я создал другой контроллер представления C и теперь хотел бы перенаправить существующий segue от A до C.Переадресация с одного контроллера вида на другой

I Ctrl перетащил его, команда перетащила его и т. Д., Похоже, что он не работает. В реальном приложении у меня слишком много переходов, чтобы попытаться воссоздать их с нуля. Есть ли более простой способ?

Этот вопрос не является дубликатом, так как я пытаюсь повторно использовать существующий segue, а не напрямую к другому контроллеру.

Спасибо!

+0

Возможный дубликат [Перенаправление на другой контроллер представления] (http://stackoverflow.com/questions/23632784/redirect-to-another-view-controller) – Mehul

ответ

3

Вариант 1, с помощью XML-файла

  • Во-первых, щелкните правой кнопкой мыши на раскадровку file.Then выберите Открыть в качестве источника кодекса

enter image description here

  • Поиск SEGUE, затем измените идентификатор назначения

    <segue destination="Esd-4c-JQq" kind="show" id="Jnu-RW-1O5"/> 
    

Вариант 2, с помощью Interface Builder

  • Первый, выбран источник SEGUE ViewController

enter image description here

  • Во-вторых, создать же SEGUE (Control + перетаскивание), как показано на рисунке

  • Теперь у вас есть два же SEGUE,

enter image description here

You просто нужно удалить старый

+0

Отлично! Спасибо. –

+0

Есть ли способ изменить источник segue? Например, я создал по ошибке segue от всего контроллера представления к другому, а не TableViewCell в качестве источника. Могу ли я изменить его источник с основного вида на TableViewCell без его удаления? –

-1

Удалить предыдущее от А до В, а затем воссоздать новую от А до С.

Надеется, что это помогает.

+0

Вот чего я пытаюсь избежать. У меня слишком много существующих цепочек, соединенных туда и обратно. –

1

Вы можете использовать g перейдите из значка ViewController в верхней части ViewController к другим контроллерам.

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

Случай 1: Нажмите Segue к B от A

[self performSegueWithIdentifier:@"PushB" sender:self]; //PushB is segue identifier 

Случай 2: Нажимаем Segue к C от A

[self performSegueWithIdentifier:@"PushC" sender:self]; 

Примечание: Вы должны иметь Навигационный контроллер в качестве начальной точки раскадровки перед выполнением performSegueWithIdentifier.

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

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