Мои аутлеты получают ноль, когда я заменяю корневой UIView UIViewController программно из базового класса - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь изменить тип корневого UIView моего базового UIViewController на мой пользовательский класс.Это легко в раскадровке.

enter image description here

Но мне нужно сделать это программно.

Я попытался переопределить loadView своей базыкласс и заменить корневое представление, но IBOutlets дочерних viewControllers получают ноль.

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 голосов
/ 22 января 2019

Переопределяя loadView, вы обходите автоматический механизм загрузки представлений вашего контроллера представления из XIB или раскадровки. Этот механизм - то, что соединяет торговые точки.

Если вы внедрите loadView, вам придется заниматься этим самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...