So, we're crafting our brand new view controller and BAM! we see this:
Let's try to break down how we got here:
Subclasses only inherit their superclass's initializers if certain conditions are met.
If our subclass doesn't define any designated initializers, it automatically inherits all of its superclass's designated initializers.
If not though, then it inherits none of them.
We subclassed UIViewController.
UIViewController implements NSCoding.
init(coder:) be implemented.
By default UIViewController implements
init(coder:) for us, and we don't need to do a thing.
But now, we defined our own new designated initalizer called
init(), so we've stopped meeting the conditions for inheriting all of our superclass's designated initializers, and now have to override, implement and properly call
init(coder:) all by ourselves!