2014-05-06 53 views
1

我的課程排像這樣的列表: rows of courses鈦標籤打開新窗口時積累

每當我點擊一個排,一個新的標籤被創建,並添加到顯示該選項卡的新窗口課程信息。

然後,如果我按回來,這又回到了課程窗口,這是偉大的,但是當我點擊另一個當然它補充說,到選項卡的列表中,因此它開始尋找這樣的:

Course Info tabs are accumulating

鑑於此處只有兩個選項卡,「課程」選項卡和「獲取課程」選項卡。


在get_courses.js我有這樣的事件監聽器,創建一個新的選項卡每個單擊某一行時間(我敢肯定是我的錯誤是(與使行交易的文件),我「M只是不知道如何解決它):

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

您可以通過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; 
    } 
}); 
+0

我得到courseInfo_tab.window = courseInfo_window錯誤; 「'null'不是一個對象......」我認爲這是因爲tab實際上是在if內部創建的,所以它不會在else中創建。那麼如何引用已存在的選項卡? –