首页 > 解决方案 > 需要帮助来编写不同的 if 语句

问题描述

(我)是 Xcode 的新手。

我正在制作这个应用程序,首先我有 3 个视图控制器;每个人都习惯用一个按钮互相交谈:从第一个你点击一个按钮到第二个,然后继续。问题是:我在第一个 viewcontroller 中放置了一些开关,它们为第二个 viewcontroller 执行 segue,更改标签。第一个 viewcontroller 有 2 个按钮 - 其中一个是开关 segue 的一部分,另一个是第三个 viewcontroller。现在我的问题:当我单击第一个视图控制器上的第二个按钮时,它工作得很好,但是如果单击 swith 而不是 segue 的按钮,则应用程序崩溃的第二个按钮。

这是我的继续:

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

正如我所说:它不会干扰应用程序的正常使用,但是如果我点击开关,而不是点击segue的按钮,而是点击第三个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 之外的其他按钮,则开关应该关闭。

任何帮助将不胜感激。

标签: xcodesegueuiswitch

解决方案


您收到的此错误消息意味着不是segue.destinationtype ,实际上它似乎是 type 。这很可能意味着您必须进入故事板并更仔细地检查:SecondViewControllerViewController

  1. segue看看它的目的地是否实际上是类型SecondViewController
  2. 故事板身份检查器自定义类部分,以确保您为有问题的视图控制器选择了和ClassModule

上面的答案几乎都在这篇文章中,加上更多的上下文/细节


推荐阅读