0

iOS に Cordova プロジェクトがあり、イベント「X」に続いて特定のタブに切り替えたいと考えています。

イベント「X」が発生したと仮定すると、私の目標 C は次の呼び出しを行い、JS 関数を次のように実行しますopenNotificationTab()

NSString *goToNotification = [NSString stringWithFormat:@"openNotificationTab()"];
[viewController.webView stringByEvaluatingJavaScriptFromString:goToNotification];

openNotificationTab()関数は filename.js に存在し、.js を使用してテストすることで、それがスコープ内にあり、アクセス可能であることを確認しましたalert()

私のjs関数の定義は次のとおりです。

function openNotificationTab(){
    Ext.Viewport.setActiveItem({
    xtype: 'notificationtabview'
    });
}

問題は、この関数が正しいパネルを開きますが、それを他のすべての上に重ねてしまうことです。そのため、タブ メニュー全体が表示されなくなり、アクセスできなくなります。

私も試しました

"Ext.Viewport.setActiveItem(1)" and  "Ext.Viewport.setActiveItem('notificationtabview')"

しかし、どちらも何もしません。ご協力いただきありがとうございます。

4

1 に答える 1

3

表示するタブのインデックスまたは表示するアイテムを指定して、TabPanel で setActiveItem を呼び出す必要があります。

ビューポートのクラスは次の方法で確認できます。

Ext.Viewport.$className

ここでおそらく、ビューポートがタブ パネルではないことがわかります。

var tabPanel = Ext.Viewport.down("tabpanel");
tabPanel.setActiveItem(tabPanel.down("notificationtabview"))

また

var tabPanel = Ext.Viewport.down("tabpanel");
tabPanel.setActiveItem(1)

どちらも機能します。

于 2012-07-12T15:33:53.050 に答える