Может кто-то объяснить в чем разница:
1. Я инициализирую viewController из сториборда и делаю navigationController.pushViewController
2. Я создаю segue в сториборде, и в prepareForSegue все еще инициализирую vc как segue.destinationViewController
в первом случае ты инициализируешь вьюконтроллер сам. во втором тебе его создает система и ты получаешь уже готовое значение. оба подходы нормально применять, тут уже зависит от проекта, кто-то вообще все в коде верстает и не имеет сторибордов