Пусть каждая кнопка вызывает различные переходы, либо перетаскивая сегменты управления с помощью перетаскивания непосредственно с кнопки, либо путем вызова performSegue(withIdentifier:sender:)
из кода IBAction ваших кнопок.
Затем используйте код в prepare(for:sender:)
, чтобы выяснить, какой пункт назначения вызывается.
Вы можете:
- Проверка идентификатора при переходе (не рекомендуется - хрупкий)
- Проверьте класс контроллера представления назначения (лучше, чем 1)
- Пусть каждый контроллер представления реализует протокол и проверяет протокол назначения:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
switch segue.destination {
case let webView as WebViewProtocol:
//Your code for a web view
case let artView as ArtViewProtocol:
//Your code for an Art View
}
}
Вариант 3 надежен, обеспечивая слабую связь (в каждом случае может запускаться любой контроллер представления, соответствующий требуемому протоколу. Все, что ему нужно знать, это то, что пункт назначения понимает требуемый протокол.)