0

我已经发送了一个颜色名称以及来自不同 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)

}

顺便说一句,我正在使用 swift 4.2

4

1 回答 1

1

它是黑色的,因为您的代码试图设置view.backgroundColor一种可能为零的颜色。named您的应用资产中有颜色吗?要添加它们,您可以参考这篇文章。或者,不要将标题传递给您sendColor:传递按钮的颜色(标题颜色/bgColor/tintColor)。

func sendColor(color: UIColor)

于 2018-08-22T21:44:47.007 回答