在钛的多个窗口之间导航

adr*_*ian 2 iphone window titanium

假设我有3个文件Window1.js,Window2.js并且Window3.js.

我可以从导航Window1Window2Window2Window3没有问题.

当我想从window3回到window2时,我会这样做:window3.close(); 现在我在window2 上,想要回到window1,所以我做了:window2.close();.但是反而让我回到了window3而不是我想要的window1.有没有办法回到window1?有人可以解释我如何在钛合金窗口之间导航吗?谢谢

mki*_*ind 6

看看这个:wiki提供了一个带有示例代码的酷视频.也许你可以提供一些可以验证你的问题..
这个例子本身非常好,因为它适用于任意数量的windows.它提供了一个堆栈:

this.windowStack = [];
Run Code Online (Sandbox Code Playgroud)

这将是filset window.navbarHidden = true或以当前窗口引导,窗口将在navgroup中打开.这提供了顶部的iphone导航栏(带后退键等)

this.windowStack.push(windowToOpen);
this.navGroup.open(windowToOpen);
Run Code Online (Sandbox Code Playgroud)

该示例还提供了获取第一个窗口的可能性,即window1.为此,堆栈将被刷新

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

[更新]
如果您对刚刚设置的导航栏不感兴趣

window1.navbarHidden = true
Run Code Online (Sandbox Code Playgroud)

另外你可以像这样编辑导航控制器:

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();
};
Run Code Online (Sandbox Code Playgroud)