首页 > 解决方案 > ViewController 背景颜色不会改变

问题描述

我已经开始了一个新项目,我正在尝试使用 MVC 和编程 UI 创建它。

我正在尝试设置 aViewController的背景颜色,但它不会改变。

我已经编写了我的程序化 UI,但是我更改了ViewController本身的背景颜色,而不是从view.

这是我的view

import UIKit

class ReportView: UIView {
    override init(frame: CGRect) {
        super.init(frame: frame)
        backgroundColor = UIColor.appColors.white
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

这是我的ViewController

import UIKit

class ReportsVC: UIViewController {

    override func loadView() {
        view = ReportView()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

这是我的AppDelegate

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var navigationController: UINavigationController?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        self.window = UIWindow(frame: UIScreen.main.bounds)

        if let window = window{
            let reportsVC = ReportsVC()
            navigationController = UINavigationController(rootViewController: reportsVC)
            window.rootViewController = navigationController
            window.makeKeyAndVisible()
        }

        return true
    }
}

我尝试从ViewController本身更改背景颜色只是为了检查,但它保持不变。

标签: iosswiftuiviewcontroller

解决方案


您需要将视图添加到 viewcontroller 的内容视图中,如下所示:

self.view.addSubview(ReportView(frame: self.view.frame))

视图需要有一个可见的框架。


推荐阅读