2012-02-29 57 views
2

假設我有3個文件Window1.js,Window2.jsWindow3.js在多個鈦窗之間導航

我可以從Window1導航到Window2和從Window2導航到Window3,沒有問題。

當我想來自window3回到窗口2我做的:window3.close(); 現在我在窗口2,想回到窗口1,所以我所做的:window2.close();。但相反,我回到window3而不是我想要的window1。有沒有辦法回到window1?有人可以解釋我如何在這個鈦窗戶之間導航?謝謝

+0

http://mobile.tutsplus.com/tutorials/appcelerator/drilldown-navigation-with-titanium/參考這個l在,可能會有幫助完整 – Triode 2012-02-29 08:34:35

回答

6

看看這個:the wiki提供了一個很酷的視頻與example code。也許你可以提供一些可以驗證你的問題..
這個例子本身是非常好的,因爲它適用於任意數量的窗口。它提供了一個堆棧:

this.windowStack = []; 

該將要被filset window.navbarHidden =真或導致與當前窗口,窗口將一個navgroup內打開。這提供了在頂部的iphone導航欄(與後退按鈕等)

this.windowStack.push(windowToOpen); 
this.navGroup.open(windowToOpen); 

的例子還提供了可能獲得的第一個窗口,窗口1的。該堆棧將被刷新

for(var i = 1, l = windows.length; i < l; i++) { 
    (this.navGroup) ? this.navGroup.close(windows[i]) : windows[i].close(); 
} 

[更新]
如果你不感興趣的導航欄只設置

window1.navbarHidden = true 

alternativly您可以編輯導航控制器是這樣的:

exports.NavigationController.prototype.open = function(/*Ti.UI.Window*/windowToOpen) { 
    //add the window to the stack of windows managed by the controller 
    this.windowStack.push(windowToOpen); 

    //grab a copy of the current nav controller for use in the callback 
    var that = this; 
    windowToOpen.addEventListener('close', function() { 
     that.windowStack.pop(); 
    }); 

    //This is the first window 
    if(this.windowStack.length === 1 && (Ti.Platform.osname === 'android')) { 
     windowToOpen.exitOnClose = true; 
    } 

    // open 
    windowToOpen.open(); 
}; 
+0

問題是我不想要一個導航欄! – adrian 2012-03-01 07:54:05

+0

編輯我的答案。希望它有幫助 – mkind 2012-03-01 08:04:04

+0

你一直在這裏? – adrian 2012-03-01 08:06:11