У меня возникают проблемы с Unwind Segue. У меня есть 3 ViewControllers, и они все под классом ViewController.swift. Я пытаюсь получить последний ViewController, который является третьим, чтобы перейти к началу ViewController с помощью нажатия кнопки, но я не могу его получить. Я пытался провести исследование, прежде чем представлять этот вопрос, но не смог его найти. Если вам нужна дополнительная информация, сообщите мне.SWIFT, ViewControllers и разматываются до исходного ViewController
ответ
У вас есть VC1 -> VC2 -> VC3 и вы хотите отключить VC3 напрямую до VC1. Для этого вам понадобится @IBAction
, определенный в VC1, который не определен в VC2. В настоящее время это невозможно, так как все ваши ViewControllers используют одно и то же определение класса в ViewController.swift.
Один из способов решить эту проблему без дублирования всего кода в ViewController.swift является подкласс ViewController
и добавить только функцию, которая является уникальной для VC1. Затем в Раскадке выберите первый ViewController, а в Identity Inspector установите Пользовательский класс - MainViewController
.
class MainViewController: ViewController {
@IBAction func returnToMain(segue: UIStoryboardSegue) {
print("back in the MainViewController")
}
}
Затем, когда вы создали свой разматывания SEGUE, управления от Drag-кнопке на Выход значок в верхней части 3 ViewController и выберите returnToMain
действие из всплывающего ,
Извините Im new, как бы я подкласса VC1? –
Каждый viewController должен иметь свой собственный связанный класс. См. Этот вопрос о том, как добавить новый класс для viewController. http://stackoverflow.com/q/26962713/1630618. В приведенном выше ответе предполагается, что между вашим диспетчером viewControllers существует много общего, и вы не хотите дублировать весь файл viewController.swift. В приведенном выше коде показано, как подклассифицировать другой viewController и добавить только дополнительную функцию, которая вам нужна, в качестве «посадочного места» для возврата из другого viewController. – vacawama
Большое спасибо, я начинаю понимать больше о материалах UnwindSegue. –