如何在选项卡中弹出父窗口?

时间:2015-09-14 10:24:42

标签: titanium appcelerator

我正在尝试将默认的“后退”按钮替换为Titanium iOS项目中的自定义图像按钮。

我在选项卡中打开了几个窗口,其中包含以下代码:

currentTab.open(childWindow);

我如何" pop"回到上一个(父)窗口?

我尝试了以下内容:

childWindow.close();

currentTab.close(childWindow);

但两人都不能工作。我做错了什么?

3 个答案:

答案 0 :(得分:1)

他们在Ti SDK 6.2中添加了一个名为popToRootWindow的方法

参考:http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Tab-method-popToRootWindow

答案 1 :(得分:0)

如果不检查实际代码,很难说你身边出了什么问题。然而,这里是代码片段,它完全符合您的要求。它允许在一个选项卡中打开两个窗口。第二个窗口上的onclick侦听器简单地关闭此窗口。它反过来触发第一个窗口出现。也许在您的代码中发现问题可能会有所帮助。

以下是index.js的内容:

$.index.open();

var tabGroup = Titanium.UI.createTabGroup();

var win1 = Titanium.UI.createWindow({title: 'Window 1'});
win1.add(Titanium.UI.createLabel({text: 'Window 1'}));
var button1 = Titanium.UI.createButton({bottom: 0, title: 'Next'});
win1.add(button1);

button1.addEventListener('click', function (e) {
    var win2 = Titanium.UI.createWindow({title: 'Window 2'});
    win2.add(Titanium.UI.createLabel({text: 'Window 2'}));
    var button2 = Titanium.UI.createButton({bottom: 0, title: 'Back to Window 1'});
    win2.add(button2);

    button2.addEventListener('click', function (e) {
        win2.close();
    });

    tab.open(win2);
});

var tab = Titanium.UI.createTab({title: 'Tab 1', window: win1});
tabGroup.addTab(tab);
tabGroup.open();

注意:此示例的index.xml文件非常简单:只有一个空元素Window class="container"

答案 2 :(得分:0)

安德鲁的回答有所帮助,我用win.close()函数调用解决了这个问题。

它给出以下错误的原因:

  

未定义不是变量。

是因为我试图使用错误的引用访问窗口变量。

this.backButton.addEventListener("click", function() {
 this.win.close();
});

this.win是子窗口的变量,愚蠢地我在backButton事件监听器中使用了相同的内容,其中this被识别为回调函数,它给了我上述错误。

只需将其更改为以下内容即可。

_this = this;
this.backButton.addEventListener("click", function() {
 _this.win.close();
});