子 class 从父 class 继承未改变颜色

child class inheriting from parent class not changing color

我的 swift 代码试图从父 class 继承 view1 到子 class 二。 view1 被重新配置,但是当代码为 运行 并且应用了 segue 时,屏幕上没有任何变化。 view1 应将颜色从粉红色更改为青色。不是我不明白为什么没有应用更改。

import UIKit

class one : UIViewController {
 
    
  var view1 = UIButton()
 
    

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        [view1].forEach{
            [=12=].translatesAutoresizingMaskIntoConstraints = false
            view.addSubview([=12=])
        }
        
        
        view1.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
      
        
        view1.backgroundColor = .systemPink
     

        view.backgroundColor = .orange
        
        view1.addTarget(self, action: #selector(move), for: .touchDown)

    }
        
    
    @objc func move(){
        let vc = two()
        vc.modalPresentationStyle = .overCurrentContext // actually .fullScreen would be better
        self.present(vc, animated: true)
    }



}


class two: one {
    
    
    override func viewDidLoad() {
        
        
        view1.backgroundColor = .cyan

        
    }

}

您的代码运行良好; Two 的呈现正在发生。但是你什么也看不到,因为:

  • Two的viewbackgroundColornil,即.clear,所以看不到背景

  • 在二中,您永远不会在界面中放置任何东西。您与 viewDidLoad 中的按钮 view1 对话,但与 One 的 viewDidLoad 不同,您永远不会将该按钮放入界面中。所以你看不到按钮(因为它不存在)。

最小的“修复”是在 Two's viewDidLoad:

中调用 super
override func viewDidLoad() {
    super.viewDidLoad() // *
    view1.backgroundColor = .cyan
}