У меня проблемы с Unwind Segue. У меня есть 3 ViewController, и они все относятся к классу ViewController.swift. Я пытаюсь получить последний ViewController, который является третьим, чтобы перейти к начальному ViewController, одним нажатием кнопки, но я не могу его получить. Я пытался исследовать, прежде чем задавать этот вопрос, но не смог его найти. Если вам нужна дополнительная информация, дайте мне знать.
SWIFT, ViewControllers и раскрутить переход к начальному ViewController
Ответы (1)
У вас есть VC1 -> VC2 -> VC3 и вы хотите отмотаться от VC3 напрямую к VC1. Для этого вам нужен @IBAction
, определенный в VC1, но не определенный в VC2. В настоящее время это невозможно, так как все ваши ViewController используют одно и то же определение класса в ViewController.swift.
Один из способов решить эту проблему без дублирования всего кода в ViewController.swift — создать подкласс ViewController
и добавить только ту функцию, которая уникальна для VC1. Затем в раскадровке выберите первый ViewController и в Инспекторе удостоверений установите для Пользовательского класса значение MainViewController
.
class MainViewController: ViewController {
@IBAction func returnToMain(segue: UIStoryboardSegue) {
print("back in the MainViewController")
}
}
Затем, когда вы настроите откатить переход, перетащите control с кнопки на значок Выход в верхней части третьего ViewController и выберите действие returnToMain
из всплывающего окна.