How to elegantly make sure you only setup your ViewController's UI on viewDidLoad
When handling navigation, we often end up having to pass some sort of state to our view controllers, wether directly or indirectly. Setting endless optional publicly exposed properties feels dirty and is a pain, while setting @IBOutlets before viewDidLoad is crash prone. Let's solve that together.