storyboard
is optional because it’s possible to instantiate view controller another way, e.g. from xib or programmatically, link to docs;
navigationController
is optional since there can’t be one, obviously;
as
is used for type casting.
All these answers can be found in documentation, it would be much faster to look there at first ?
solved In self.storyboard?.instantiateViewController why self.storyboard is optional?