Backgroundcolor不变吗?

时间:2018-08-22 19:56:52

标签: ios iphone delegates swift4.2

我从另一个ViewController发送了一个带有委托的颜色名称,并且数据成功接收(打印正确的颜色)。然后,如果我想更改视图本身的背景颜色,则使用我收到的名称,但它不起作用。

func sendColor(color: String) {
    let colorLowercased = color.lowercased()
    print(colorLowercased)

    view.backgroundColor = UIColor(named: "\(colorLowercased)")
    print(view.backgroundColor)
}

然后执行代码

更改背景色后为nil并且视图为黑色

在colorviewController中,这是我要发送的委托函数

@IBAction func colorPressed(_ sender: UIButton) {
    let selectedColor = sender.currentTitle

    if let delegate = delegate {
        delegate.sendColor(color: selectedColor!)
    }

    _ = navigationController?.popViewController(animated: true)

}

btw im使用swift 4.2

1 个答案:

答案 0 :(得分:1)

它是黑色的,因为您的代码正在尝试将view.backgroundColor设置为可能为零的颜色。您的应用资产中是否有named种颜色?要添加它们,您可以参考此post。另外,也可以不传递标题给sendColor:,而传递按钮的颜色(标题颜色/ bgColor / tintColor)。

func sendColor(color: UIColor)