我有一个行列表,如下所示:
每当我点击一行时,都会创建一个新标签页,并在该标签页上添加一个新窗口,显示课程信息。
然后,如果我按回,它会返回到课程窗口,这很棒,但当我点击另一个课程时,它会将其添加到选项卡列表中,所以它开始如下所示:
然而,此处应该只有两个标签,即“课程”标签和“获取课程”标签。
在get_courses.js(处理行的文件)中,我有这个事件监听器,每次单击一行时都会创建一个新选项卡(我确定这是我的错误所在,我不是确定如何解决它):
table.addEventListener("click",function(e){
var courseInfo_window = Titanium.UI.createWindow({
title:e.rowData.title,
url:'get_courseInfo.js',
courseIMISCode: e.rowData.courseIMISCode
});
var courseInfo_tab = Titanium.UI.createTab({
title:'Course Info',
window:courseInfo_window
});
Titanium.UI.currentTabGroup.addTab(courseInfo_tab);
});
我想在那里创建一个“课程信息”选项卡,但是在get_courseInfo.js中我有这个,可能是多余的代码:
Ti.UI.currentTabGroup.activeTab.open(courseInfo_window);
其中,在我的Noob脑中似乎有必要打开我的courseInfo_window,但是正在积累底部的标签(如前图所示)。
TL; DR:我需要做什么(可能在get_courses.js中)更新“课程信息”标签,而不是为每行点击打开一个新标签?
答案 0 :(得分:0)
您可以通过tabs property访问TabGroup中的标签页。但是,继续引用您在事件侦听器之外创建并在内部修改的选项卡会更容易:
var courseInfo_tab = null;
table.addEventListener("click",function(e){
var courseInfo_window = Titanium.UI.createWindow({
title:e.rowData.title,
url:'get_courseInfo.js',
courseIMISCode: e.rowData.courseIMISCode
});
if (courseInfo_tab === null) {
courseInfo_tab = Titanium.UI.createTab({
title:'Course Info',
window:courseInfo_window
});
Titanium.UI.currentTabGroup.addTab(courseInfo_tab);
} else {
courseInfo_tab.window = courseInfo_window;
}
});