0

我在 iOS 上有一个 Cordova 项目,我想在事件“X”之后切换到特定选项卡。

假设事件“X”刚刚发生,我的目标 C 进行以下调用以运行 JS 函数openNotificationTab(),如下所示:

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

openNotificationTab()函数位于 filename.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 回答