xcode - 需要帮助来编写不同的 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 之外的其他按钮,则开关应该关闭。
任何帮助将不胜感激。
解决方案
您收到的此错误消息意味着不是segue.destination
type ,实际上它似乎是 type 。这很可能意味着您必须进入故事板并更仔细地检查:SecondViewController
ViewController
- 你
segue
看看它的目的地是否实际上是类型SecondViewController
- 故事板身份检查器的自定义类部分,以确保您为有问题的视图控制器选择了和
Class
Module
上面的答案几乎都在这篇文章中,加上更多的上下文/细节
推荐阅读
- android - Android 上的 Exchange ActiveSync (EAS) 协议库
- .net - 服务器上无法发送到客户端的文件
- api - 如何在 Postman 中使用 __RequestVerificationToken 标头发出 POST 请求
- c++ - 将 std::string 解析为 ::std::string 以外的其他内容 - 可能吗?
- javascript - 滚动和粘性导航时固定内容
- ios - UserDefault 不应只删除一个键
- r - 使用 lapply 在数据帧列表上循环 which() 函数
- java - Springboot和Spring Security中认证成功后如何授权Rest API调用
- android - 如何在 React Native 中设置 Staging、Development 和 Live 环境
- javascript - 加载 DOM 后添加的 WAI-ARIA 属性