Нужна помощь, чтобы написать другое заявление - PullRequest
0 голосов
/ 25 февраля 2020

(я) новичок в Xcode.

Я делаю это приложение, и сначала у меня было 3 viewcontrollers; каждый имел обыкновение общаться друг с другом с помощью кнопки: с первого раза вы нажимаете кнопку, которая переходит ко второму, и go включается. Дело в том, что я поместил некоторые переключатели в первый viewcontroller, и они выполнили переход для второго viewcontroller, изменив метку. Первый view-контроллер имеет 2 кнопки - одна из них является частью последовательности переключателей, а другая - для третьего view-контроллера. Теперь моя проблема: когда я нажимаю вторую кнопку на первом контроллере вида, он работает просто отлично, но если щелкнуть swicth, а не кнопку перехода, вместо второй кнопки приложение вылетает.

это строка моей темы:

if switch1?.isOn == true
              {
              let secondController = segue.destination as! SecondViewController
                secondController.myString1 = "blabla"; ()

Как я уже сказал: это не мешает нормальному использованию приложения, но если я нажимаю переключатель, но не нажимаю кнопку перехода, вместо этого нажимаю кнопку для третьего viewcontroller приложение аварийно завершает работу.

Could not cast value of type 'app2.ViewController' (0x103879548) to 'app2.SecondViewController' (0x1038793a0).
2020-02-25 20:43:39.507421+0000 app2[18433:249963] Could not cast value of type 'app2.ViewController' (0x103879548) to 'app2.SecondViewController' (0x1038793a0).

Мне нужен способ написать условие, что если при нажатии другой кнопки, отличной от той, что у segue, переключатели должны быть выключены.

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 26 февраля 2020

Полученное сообщение об ошибке означает, что segue.destination - это , а не типа SecondViewController, и фактически оно выглядит как ViewController. Скорее всего, это означает, что вы должны go войти в раскадровку и более внимательно изучить:

  1. Ваш segue, чтобы увидеть, действительно ли пункт назначения имеет тип SecondViewController
  2. Пользовательский класс часть раскадровки Identity Inspector , чтобы убедиться, что вы выбрали Class и Module для рассматриваемого контроллера представления

Ответ выше приведен в этом посте , плюс еще немного контекста / подробностей

...