【发布时间】:2021-11-23 21:52:12
【问题描述】:
我的作业被这块卡住了。
也许有人可以解释我如何解决它。
“VC 包含一个带有内置控制器的控制器。两者都是父级和子控制器有三个按钮:绿色、黄色、紫罗兰。当您单击父控制器中的一个按钮时,子控制器的背景颜色会更改为相应的颜色。当您单击子控制器中的按钮时,父级的背景发生变化。”
这是我在代码中所做的
父 VC
import UIKit
class OrangeViewController: UIViewController, VioletControllerDelegate {
var delegate: VioletControllerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vcV = segue.destination as! VioletViewController
vcV.bgColor = view.backgroundColor
vcV.delegate = self
}
@IBAction func greenOButton(_ sender: Any) {
//TO DO
}
@IBAction func yellowOButton(_ sender: Any) {
//TO DO
}
@IBAction func purpleOButton(_ sender: Any) {
//TO DO
}
func setColor(color: String) {
view.backgroundColor = UIColor(named: color)
}
}
儿童 VC
import UIKit
protocol VioletControllerDelegate{
func setColor ( color : String)
}
class VioletViewController: UIViewController {
var bgColor : UIColor?
var delegate: VioletControllerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
var bgColor = view.backgroundColor
}
@IBAction func setGreen(_ sender: Any) {
delegate?.setColor( color: "green")
}
@IBAction func setYellow(_ sender: Any) {
delegate?.setColor( color: "yellow")
}
@IBAction func setViolet(_ sender: Any) {
delegate?.setColor( color: "violet")
}
func setColor ( color : String){
view.backgroundColor = UIColor(named: color)
}
}
谢谢!
【问题讨论】: