Разница в том, что с addSubiview
вы добавляете представление к другому, которое поэтому будет содержать его.Контроллер навигации фактически управляет стеком VC, в котором следующее представление не включено в предыдущее.
Другое различие касается параметров: addSubview
примет представление в качестве аргумента, в то время как другое приметконтроллер представления.
Как правило, контроллер навигации используется при отображении иерархического содержимого (в большинстве случаев в виде таблицы), которое позволяет пользователю углубляться в детали или возвращаться к предыдущим уровням.