Я пытаюсь сделать что-то, что, на мой взгляд, было бы довольно просто, но я боролся с этим.Я много занимался поиском, и ничего не могу найти, это именно то, что я хочу попробовать.
Я пытаюсь передать строку из одного VC в следующий VC и изменить метку на нем с помощью делегата.Проблема, с которой я сталкиваюсь, заключается в том, что по какой-то причине делегат появляется как ноль.( Я получаю эту ошибку: Поток 1: Неустранимая ошибка: Неожиданно обнаружен ноль при развертывании необязательного значения ) ниже приведены некоторые изображения моего кода, которые помогут вам понять, что я написал
СначалаКод VC:
@IBAction func nextBtn(_ sender: Any) {
let newWorkoutVC = storyboard?.instantiateViewController(withIdentifier: "NewWorkoutVC") as! NewWorkoutVC
if workoutNameTextField.text != ""{
let workoutName = workoutNameTextField.text!
nameDelegate.transferText(name: workoutName) //error appears on this line
present(newWorkoutVC, animated: true, completion: nil)
} else {
}
}
Второй VC, для которого создается экземпляр экземпляра делегата, появится, поскольку предполагается, что это произойдет, когда VC будет загружен.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let workoutNameVC = storyboard?.instantiateViewController(withIdentifier: "WorkoutNameVC") as! WorkoutNameVC
workoutNameVC.nameDelegate = self
вот мое расширение, заставляющее второй VC соответствовать моему делегату.
extension NewWorkoutVC: WorkoutNameDelegate{
func transferText(name: String!) {
workoutNameLabel.text = name
}