Titanium TabGroup

时间:2012-04-06 19:15:10

标签: javascript appcelerator

我遇到tabGroups问题。我创建了一个新的应用程序(这是我的第一个应用程序),当我点击表中的一个选项时,我正在调用:

win.open(win,{annimated:true});

问题是页面顶部没有标签可以回到我原来的位置。所以我需要使用tabgroups。我的问题是我不确定如何使用它们。当我用以下内容替换上面的内容时:

Ti.UI.currentTab.open(win);

我收到一个错误,即没有定义currentTab。如何启用tabGroups?我有另一个名为AppTabGroup.js的文件,其中包含:var self = Ti.UI.createTabGroup();在其中,但我不知道如何使用它。

以下是整个页面,我正在做一些基础上的事情。

function AppWindow(title){     var self = Ti.UI.createWindow({         标题:标题,         的backgroundColor: '白'     });

var data = [

{ title:"Catalog", hasChild:true, test:'ui/CatalogWindow.js', header:'' },
{ title:"Service Calculator", hasChild:true, header:'' }
];

var tableview = Titanium.UI.createTableView({
data:data,
style:Titanium.UI.iPhone.TableViewStyle.GROUPED
});

tableview.addEventListener('click', function(e)
{
    if (e.rowData.test)
    {
        var win = 
    Titanium.UI.createWindow({
        url:e.rowData.test,
        title:e.rowData.title
    });
    win.open(win,{annimated:true});
}

});       self.add(的tableview);

return self;

};

module.exports = AppWindow;

1 个答案:

答案 0 :(得分:2)

你并不孤单。其他人(包括我自己)已被Ti.UI.currentTab未定义所困惑:

http://developer.appcelerator.com/question/98501/titaniumuicurrenttab-is-null

我过去解决这个问题的方法是将包含选项卡传递给窗口,以便它可以使用该引用打开另一个窗口。所以在你的例子中,AppTabGroup.js看起来像:

var AppWindow = require('src/AppWindow');

var self = Ti.UI.createTabGroup();

//create app tabs
var appTab = Ti.UI.createTab({
    title : L('app'),
    icon : '/images/app_tab.png',
    window : AppWindow
});
AppWindow.setContainingTab(appTab);

然后在AppWindow.js中:

exports.setContainingTab = function(tab) {
    containingTab = tab;
}
var win = Titanium.UI.createWindow({
    url:e.rowData.test,
    title:e.rowData.title
});

containingTab.open(win);