MVC has three main components. Model - View and Controller. Views camunicate with controller and model, that's the way it has to be done, if you're view isn't talking with the other two components, then you have something called PAC (Presentation-abstraction-control).
That means that the view has more functionality that you may think, and that's way you can use several techniques to acomplish the generation of views.
Going straight to the answer, you may (and you should) use a template engine for your views. Here is a short example, you can see how it's handled by CakePHP (PHP MVC framework)
Supose you go to http://www.example.com/books/get/2
That is handled by the controller, who knows that the user is requesting for the action "get" (with parameter 2, that might be the id), of the model "Books". There, it has to look for the book with the id=2, and retrieve it.
The controller performs a database lookup, get the corresponding book, and populate a variable. Short code:
function get($id){
$book = $this->Book->find($id);
$this->set('bookVariable',$book);
}
The last line (%this->set) will assign a variable to the view. More precisely, the "get" view will have a variable called bookVariable with the contents of the book. Short code for the view:
<html>
...
<body>
<ul>
<?
if($bookVariable){
echo "<li>$bookVariable->name</li>"
echo "<li>$bookVariable->price</li>"
}
?>
</ul>
Then you can see how this two components interact, you can or cannot use a template system, it has nothing to do with MVC. Again, i recommend you to use it.