gpt4 book ai didi

ios - swift "Could not cast value of type "AppName.ToDoViewViewCtonroller“到 AppName.CalendarView”SIGBART

转载 作者:行者123 更新时间:2023-11-30 10:54:24 36 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,根据选定的颜色记录当前日历日的单元格。我已经使该部分正常工作,但后来我添加了另一个名为“ToDoViewViewController”的 UIViewController,当我尝试从主 ViewController 转到该 View Controller (按一下按钮)时,我收到错误“无法转换类型为“AppName”的值。 ToDoViewViewCtonroller"to AppName.CalendarView "和线程 1 SIGBART 将我带到一行:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let DestViewControler: CalendarView = segue.destination as! CalendarView
DestViewControler.color = [selectedMood] //selected mood reflects color for cell
}

我试图注释掉这一点,然后从主视图 Controller 到 ToDoViewViewControler 的转场工作得很好,但单元格的颜色没有改变。

这个错误是什么?我对 swift(自学)很陌生,似乎无法弄清楚这一点。

最佳答案

您需要在prepareForSegue方法中使用其实际的viewController类名创建viewController,当您尝试将 View Controller 转换为UIView时,您所做的事情是错误的。我相信你尝试做的是,用 segue 改变 ToDoVC 的颜色,试试这个:

首先在 ToDoViewViewCtonroller 中有一个 UIColor 变量:

class ToDoViewViewCtonroller {

var color: UIColor!

}

然后按如下方式更新您的 prepareForSegue:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! ToDoViewViewCtonroller
destinationVC.color = UIColor.red //set the color to a value here I wrote UIColor.red for an example.
}

然后再次在你的ToDoViewViewCtonroller中,也许在viewDidLoad方法中将containerView的backgroundColor设置为你的颜色:

override func viewDidLoad() {
super.viewDidLoad()
containerView.backgroundColor = color
}

关于ios - swift "Could not cast value of type "AppName.ToDoViewViewCtonroller“到 AppName.CalendarView”SIGBART,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54120699/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com