ビューをロードする必要がないというこの機能は、実際には妨げになるようです。この方法はお勧めしません。ビューを渡さない場合はデフォルトのビューがプルされると推測できますが、これをオーバーライドできます。テンプレートとビューを処理するメソッドを使用して MY_Controller を作成できます。ビューを明示的に宣言しない場合、ディレクトリ内のビューをクラスと同じ名前で呼び出し、ファイルをクラス内のメソッドと同じ名前で呼び出すと想定されます。 uri ( http://ellislab.com/codeigniter/user-guide/general/routing.html )。このように、ビューを明示的に呼び出したり、何かを変更したりする必要がある場合は、メソッドをオーバーライドするか、プロパティを埋めるだけです。
if (count($this->loadViews))
{
foreach ($this->loadViews as $view)
$this->load->view($view);
}else
{
$this->load->view($this->uri->segment(1, 'welcome') . '/' . $this->uri->segment(2, 'index'))
}
また、引き続き機能する可能性のあるビュー内でビューを呼び出すこともできるため、CI の変更されたバージョンによって呼び出されている既定のビューにいつでも移動して、次のようなことを行うことができます。
<? if isset($flag): ?>
$this->load->view('partial_view1');
<? else ?>
$this->load->view('partial_view2');
<? endif; ?>
これを処理するためにフックを調べることもできます。ビューをフックしてob_startし、それらをスクラブしてからデータを出力することで、ビューとテンプレートを制御するプロジェクトが1つありました。
http://ellislab.com/codeigniter/user-guide/general/hooks.html
これらの解決策のいずれかが役立つことを願っています。他に何か必要な場合は、お知らせください。