如何使用 xib 子类化 UIViewController 并添加更多视图

How to subclass UIViewController with xib and add more view

我有一个 BaseViewController 连接到它的 .xib 并且想在我的故事板中使用 SubViewController 对其进行子类化以添加更多视图。我已经对 UIView 进行了类似的设置,但它不适用于 UIViewcontroller。 没有特定的代码,我只看到从故事板设计的 SubViewController“屏幕”。未加载 BaseViewController xib。

如果我将下面的代码放在 BaseViewController 中,那么我可以从中看到所有视图,但不能从 BaseViewController 中看到

 public required init?(coder: NSCoder) {
        super.init(coder: coder)
        
        let bundle = Bundle(for: type(of: self))
        var myCustomView = UINib(nibName: "BaseViewController", bundle: bundle).instantiate(withOwner: self, options: nil)[0] as? BaseViewController

    }

在 BaseViewController 中使用此代码,我得到“无法将自身添加为子视图”:

 let bundle = Bundle(for: type(of: self))
        
        guard let view = bundle.loadNibNamed("BaseViewController", owner: self, options: nil)?.first as? UIView else {
            return
        }
        self.view.addSubview(view)

        view.frame = self.view.bounds
        view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

目前我只能在屏幕上显示 BaseViewController 或 SubViewController 视图,但不能同时显示两者。目标是在 SubViewController 视图后面设置 BaseViewController xib。

这可以用 UIViewcontroller 完成还是我做错了?

经过大量测试,不可能继承 UIViewcontroller 并保留基本代码并向其添加新的子类代码。