перемещаться между несколькими окнами из титана - PullRequest
2 голосов
/ 29 февраля 2012

Предположим, у меня есть 3 файла Window1.js, Window2.js и Window3.js.

Я могу без проблем перемещаться от Window1 до Window2 и от Window2 до Window3.

Когда я хочу вернуться из окна3 в окно2, я делаю: window3.close(); Теперь я нахожусь на окне 2 и хочу вернуться к окну 1, поэтому я сделал: window2.close();. Но вместо этого это вернулось к window3, а не к window1, как я хотел. Есть ли способ вернуться в окно1? Может кто-нибудь объяснить мне, как перемещаться между этими окнами в титане? Спасибо

1 Ответ

6 голосов
/ 29 февраля 2012

посмотрите на это: вики предоставляет классное видео с примером кода . может быть, вы можете предоставить некоторые из них, чтобы подтвердить вашу проблему ..
Сам пример очень хорош, так как он отлично работает для произвольного количества окон. это обеспечивает стек:

this.windowStack = [];

это будет filset window.navbarHidden = true или приведенный с текущим окном, и окно будет открыто внутри группы навигации. это обеспечивает навигационную панель 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

альтернативно вы можете редактировать навигационный контроллер следующим образом:

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();
};
...