Efectivamente, es el controlador quién carga la vista (no al reves).
Como tu bien dices, las vistas son archivos .php conformados casi en su totalidad por código Html o Css (en las vistas debemos intentar que el código php sea el mínimo e indispensable que necesitamos para la presentación del sitio web).
¿Qué ventajas tienes con esto?,
Muy sencillo. La parte lógica de tu software (el código verdaderamente importante y que define el comportamiento de un soft) queda en tus controladores.
Y todo el código HTML (que son centenares o miles de líneas de código) queda en las vistas.
¿Y esto de que sirve?
Tu software queda mucho más entendible y sencillo de mantener. Aprovechando que el código HTML queda en las vistas, el código de tus controladores queda mucho más compacto, en consecuencia tu codigo es más comprensible y fácil de extender o modificar.
Distinto ocurre cuando cuando tienes todo tu código junto en un único archivo .php (algo que es muy común, especialmente cuando iniciamos a programar).
Tus php y consultas Mysql mesclado con las miles de línea de código HTML.....
Cuando necesitas hacer un cambio en el comportamiento de tu soft o agregar una funcionalidad, es complicado y tedioso.
¿Qué es más sencillo de entender y modificar? - Un archivo con miles de línea (programación secuencial)
- O un archivo con sólo 10 o 20 líneas? (programación POO con el modelo MVC utilizado por CodeIgniter)
Si necesitas que profundicemos sobre alguno de estos puntos, por favor escríbeme y lo revisamos juntos.
Saludos y éxitos!