MVC is a design pattern used by applications that need the ability to
maintain multiple views of the same data. The MVC pattern has been separated into Models for maintaining data, Views for displaying data and Controller for handling events that affect the model or view. Hmm sound interesting design pattern.

And the CodeIgniter is an MVC framework for PHP. In CodeIgniter we could separates application logic from presentation. It will be easier for programmers to modify and develop the system in the future.
As we can see in CodeIgniter User Guide, with MVC permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.

  • The Model represents your data structures. Typically your model classes will contain functions that help you retrieve, insert, and update information in your database
  • The View is the information that is being presented to a user. A View will normally be a web page, but in CodeIgniter, a view can also be a page fragment like a header or footer. It can also be an RSS page, or any other type of “page”
  • The Controller serves as an intermediary between the Model, the View, and any other resources needed to process the HTTP request and generate a web page.

Even CodeIgniter has complexity separation, you still can build your application minimally using Controllers and Views. And of course CodeIgniter also enables you to incorporate your own existing scripts, or even develop core libraries for the system, so you work as you need.
It is a glance about MVC and CodeIgniter, Interest to try :) .