Javascript 从自定义JS函数激活Sencha Touch选项卡

Javascript 从自定义JS函数激活Sencha Touch选项卡,javascript,ios,cordova,sencha-touch-2,Javascript,Ios,Cordova,Sencha Touch 2,我在iOS上有一个Cordova项目,我想在事件“X”之后切换到一个特定的选项卡 假设事件“X”刚刚发生,my objective C将执行以下调用以运行JS函数openNotificationTab()如下所示: NSString *goToNotification = [NSString stringWithFormat:@"openNotificationTab()"]; [viewController.webView stringByEvaluatingJavaScriptFromStr

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

假设事件“X”刚刚发生,my objective C将执行以下调用以运行JS函数
openNotificationTab()
如下所示:

NSString *goToNotification = [NSString stringWithFormat:@"openNotificationTab()"];
[viewController.webView stringByEvaluatingJavaScriptFromString:goToNotification];
openNotificationTab()
函数驻留在filename.js中,我通过使用
alert()
测试验证了它在范围内,并且可以访问

现在my js函数的定义如下:

function openNotificationTab(){
    Ext.Viewport.setActiveItem({
    xtype: 'notificationtabview'
    });
}
问题是,此函数打开正确的面板,但将其覆盖在所有其他面板之上。因此,整个选项卡菜单不再可见,因此无法访问

我也试过了

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

但两者都不起作用。感谢您的帮助。

您需要在TabPanel上调用setActiveItem,其中包含要显示的选项卡的索引或要显示的项目

您可以使用以下选项检查视口的类:

Ext.Viewport.$className
您可能会在这里了解到视口不是您的选项卡面板

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


这两种方法都有效。

您需要在TabPanel上调用setActiveItem,使用要显示的选项卡的索引或要显示的项目

您可以使用以下选项检查视口的类:

Ext.Viewport.$className
您可能会在这里了解到视口不是您的选项卡面板

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


这两部作品都很有魅力。谢谢你,克劳德,工作很有魅力。谢谢你,克劳德。