Это не лучший код. Вот как бы я его код (для записи, существует несколько способов, чтобы закодировать это!):
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "[segue name here]" {
if let nextVC = segue.destination as? CreateTasksViewController {
nextVC.tasksVC = self
}
}
}
код Размещенный вами, что называется "forced unwrap" места назначения SEGUE (это , как вы спросил о). Here's Вопрос с довольно хорошим ответом, объясняющим опасности принудительной разворачивания. Прокрутите вниз до разделителя в ответе.
Хотя я уверен, что код компилируется (и, скорее всего, работает), проблема в обслуживании кода.
Предположим, у вас есть несколько segues, определенных между несколькими сценами, каждый со своим собственным контроллером вида? Мой код, в отношении стиля, отдает немного «Swiftiness» для «эксплицитности»:
- (1) Проверка делается, что переход является правильным
- (2) если пусть ... как? сделана для безопасной проверки, если место назначения segue, если правильный контроллер представления
- (3) Если все проходит проверки, код выполняется. В этом случае, похоже, он передает весь (!) Контроллер представления в переменную с именем tasksVC в CreateTasksViewController.
Я действительно осторожно отношусь к пункту 3 - зачем кому-либо передавать один контроллер вида в другой как переменную? В большинстве случаев в подготовить (для segue :) одну или несколько переменных внутри передающий VC передается адресату. Если я могу предложить это вам ... найдите еще один учебник!
Непонимание, что означает 'как!' Означает, что вы не сделали уроки основного языка, и даже не пытались найти его, чтобы попытаться выяснить себя. Почему вы ожидаете понять язык, которого еще не научили? – Clive
Я так и не взял! в моем курсе – tj75467
Ссылка на него может быть полезна – tj75467