[Решено] UITabbarViewController + viewDidLoad


#1

Такой вопрос, почему viewDidLaod в UITabBarController происходит раньше чем удается установить свойства класса?
Нашел ответ тут
(https://stackoverflow.com/questions/31489957/viewdidload-is-called-before-whole-init-method-is-executed)

class VC: UIViewController {
    var any: Any? {
        didSet { print("\(String(describing: self)) DID SET") }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        print("\(String(describing: self)) DID LOAD")
    }
}

class NC: UINavigationController {
    var any: Any? {
        didSet { print("\(String(describing: self)) DID SET") }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        print("\(String(describing: self)) DID LOAD")
    }
}



class TC: UITabBarController {
    var any: Any? {
        didSet { print("\(String(describing: self)) DID SET") }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        print("\(String(describing: self)) DID LOAD")
    }
}

let vc = VC()
vc.any = 3
let nc = NC()
nc.any = 3
let tc = TC()
tc.any = 3

nc.pushViewController(vc, animated: false)
tc.viewControllers = [nc]

#2

viewDidLaod в UITabBarController.init вызывается, вопрос не ясен :slight_smile:


#3

Вроде как он показал ссылку с ответом, почему так происходит, следовательно вопрос решен или по крайней мере понятно почему така происходит.


#4

Да, я отписал, просто было не очевидно почему так)