当我从基类中以编程方式替换UIViewController的根UIView时,Outlet变为nil

时间:2019-01-22 12:46:36

标签: ios swift uiviewcontroller

我正在尝试将基本UIViewController的根UIView类型更改为自定义类。 在情节提要中很容易。

enter image description here

但是我需要以编程方式进行。

我尝试覆盖基类的loadView并替换根视图,但是子viewControllers的IBOutlet变为nil。

class FPViewController: UIViewController {

    override func loadView() {
        super.loadView()

        let tmpRootView = self.view ?? UIView()

        let gradient = UIView(frame: tmpRootView.frame)
        gradient.backgroundColor = .green
        view = gradient

        view.addSubview(tmpRootView)
    }
}

1 个答案:

答案 0 :(得分:0)

通过覆盖loadView,您绕过了自动机制,用于从XIB或情节提要中加载视图控制器的视图。这种机制是连接各个网点的原因。

如果实现loadView,则您需要自己负担整理工作的负担。