【问题标题】:iOS Back button on centre of window using Titanium使用 Titanium 的窗口中心的 iOS 后退按钮
【发布时间】:2025-12-26 05:10:11
【问题描述】:

我试图在窗口中心放置一个后退按钮。我可以使用图像视图来实现相同的目的。但是导航到除最后一个窗口之外的前一个窗口都失败了。

假设我已经遍历了三个窗口 A->B->C。从窗口'C'按钮将我带到窗口'B'。但是从窗口'B'点击相同的按钮没有反应(理想情况下它应该带我到窗口'A')

我使用的代码如下

{
    var imgView = Ti.UI.createImageView({
        top:'50%',
        left : 0,
        image : "icons/back.png"
    });


    imgView.addEventListener('click', function(){
        self.close();
    });
}

【问题讨论】:

  • 你遇到了什么错误?
  • 没有错误。假设我已经遍历了三个窗口 A->B->C。从窗口'C'按钮将我带到窗口'B'。但是从窗口“B”点击相同的按钮不会引起任何响应(理想情况下它应该带我到窗口“A”)
  • 请在您的代码中添加上述注释,以便您的问题更具体

标签: titanium titanium-mobile


【解决方案1】:

在包含新窗口的每个文件中添加上述行,因为您使用 url 方法打开新窗口。

var currentWindow = Ti.UI.currentWindow;

然后按如下方式关闭窗口

imgView.addEventListener('click', function(){
    currentWindow.close();
});

这将关闭当前窗口,因为currentWindow 代表活动窗口

我将添加工作示例:

app.js

var win = Ti.UI.createWindow({
    backgroundColor : 'white'
});

var back = Ti.UI.createButton({
    title : 'To win1 ',
    width   : '70%'
});

back.addEventListener('click', function(){
    var win1 = Ti.UI.createWindow({
        url : 'win1.js',
        backgroundColor : 'white',
        layout  : 'vertical'
    });
    win1.open();
});
win.add(back);
win.open();

win1.js

var self = Ti.UI.currentWindow;

var back = Ti.UI.createButton({
    title : 'Back to home',
    top     : 20,
    width   : '70%'
});

var next = Ti.UI.createButton({
    title : 'To win2',
    top     : 20,
    width   : '70%'
});

self.add(back);
self.add(next);

back.addEventListener('click',function(){
    self.close();
});

next.addEventListener('click', function(){
    var win2 = Ti.UI.createWindow({
        url : 'win2.js',
        backgroundColor : 'white',
        layout      : 'vertical'
    });
    win2.open();
});

win2.js

var self = Ti.UI.currentWindow;

var back = Ti.UI.createButton({
    title : 'Back to win1',
    top     : 20,
    width   : '70%'
});

self.add(back);

back.addEventListener('click',function(){
    self.close();
});

【讨论】:

  • 我试过了。即使我使用 url 参数创建了窗口,当前窗口的句柄仍然未定义。
  • 你是怎么打开新窗口的?
  • self = Ti.UI.createWindow({ url:'custom.js', backgroundColor:'#ffffff', });
  • @prasadkatankot:我已经完成了一个示例应用程序来解决您的问题,我发现它工作正常,我也添加了工作示例 :)