La solución esta en que definas la variable $data (hacerlo todo...) en __construct(). Así se "setea" nada mas se cargue el Class dando igual si directa o indirectamente.
Código
<?php class Controlador extends CI_Controller { private $data = NULL; public function __construct(){ $this->data['variable'] = "Hola Mundo Como estas???"; } public function index(){ $this->load->view('vista',$this->$data); } public function imprimir(){ $html = $this->load->view('vista',$this->data,true); echo $html; } } ?>
O en declarar imprimir() como privada y llamarla desde index().
Saludos