ios - 背景颜色不改变?

标签 ios iphone delegates swift4.2

我已经使用来自不同 ViewController 的委托(delegate)发送了颜色名称,并且数据成功接收(打印了正确的颜色)。然后,如果我想更改 View 本身的背景颜色,则使用我收到的名称,但它不起作用。

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

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

并且代码执行

更改背景颜色后为零, View 为黑色

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

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

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

    _ = navigationController?.popViewController(animated: true)

}

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

最佳答案

它是黑色的,因为您的代码试图将 view.backgroundColor 设置为可能为 nil 的颜色。您的应用 Assets 中是否有已命名 颜色?要添加它们,您可以引用此 post .或者,不是将标题传递给 sendColor:,而是传递按钮的颜色(标题颜色/bgColor/tintColor)。

func sendColor(颜色: UIColor)

关于ios - 背景颜色不改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51974231/

相关文章:

ios - 如何为 UITextField 设置 inputDelegate?

iphone - iOS设计: Using the delegate pattern in a library

ios - 将 Sprite Kit 与空应用程序混合

java - iPhone 3Des 加密匹配 Java 和 .NET key 问题,SecretKeySpec?

ios - 当应用程序在后台iOS中时发出声音

ios - 如何在自定义 UIView 中从 ViewController 传递数据

c# - 为什么这个 OrderBy 参数是错误的?

ios - 无法从 Storyboard 中显式加载 View Controller

ios - 以 HH :mm am/pm of a HIChart's Line chart using Swift 5. 0 格式设置 tickInterval

javascript - 让 HTML5 YouTube 播放器适应 UIWebView