0

これが私のサブビューです ここに画像の説明を入力

UIを作り直しています。最初、戻るボタンはタイトルバーの実際のボタンでした。このボタンのロジックは完全に機能し、MVC されました。これで、適切な信号をコントローラーに送信するようにタブをリンクしました。コントローラーは、ツリー構造を正しく受信してナビゲートします。

問題は、[戻る] ボタンをタップした後、[プロジェクト] タブの Dataview.dataview が正しく表示されないことです。

これが私のコードです

onSubviewActiveItemChange: function(container, value, oldValue, eOpts) {
var me = container;
switch(value.getItemId())
{
    case  'back_Innertab':
        me.fireEvent('goback');
        break;
    case  'exit_Innertab':
        me.fireEvent('exit');
        break;
    case  'project_Innertab':
        me.fireEvent('reloadchildren')
        break;
    case  'chart_Innertab' :
        me.fireEvent('categorydisplay',me.getComponent('chart_Innertab').getComponent('pie'));
        break;
}

}

そのコードを使用すると、[戻る] タブがタップされると、コントローラーが意図したとおりに動作し、タブパネルが [戻る] タブに移動します。[プロジェクト] タブに移動すると、適切な要素が表示されます。いいけど、プロジェクト タブに戻るために 2 回目のタップは必要ありません。だからここに私のコードがあります

  onSubviewActiveItemChange: function(container, value, oldValue, eOpts) {
    var me = container;
    switch(value.getItemId())
    {
        case  'back_Innertab':
            me.fireEvent('goback');
            me.setActiveItem(oldValue);
            break;
        case  'exit_Innertab':
            me.fireEvent('exit');
            break;
        case  'project_Innertab':
            me.fireEvent('reloadchildren')
            break;
        case  'chart_Innertab' :
            me.fireEvent('categorydisplay',me.getComponent('chart_Innertab').getComponent('pie'));
            break;
    }
}

通常、タップする前にアクティブなタブに戻りますが、そうではありません。[戻る] タブに戻りますが、[プロジェクト] タブがオーバーレイされています...

これがインスペクターです... (スクリーンショットの灰色の領域を調べて、[戻る] タブをタップした後) ここに画像の説明を入力

それを実際にプロジェクトタブに表示して正しく表示するにはどうすればよいですか? 私は本当にそれが必要で、そうする方法を見つけることができないようです:S

4

1 に答える 1

0

OnActiveItemChange

タブの変更によってこのイベント内でタブを変更する場合、結果はほとんど未定義であり、そのバックエンド実装はそのようなタスクを正しくサポートできません。

于 2013-08-16T18:14:08.487 に答える