Titanium 关上窗户,打开新的

Titanium 关上窗户,打开新的,titanium,Titanium,我正在用钛构建一个iOS应用程序。第一个窗口是登录页面。当用户输入用户名和密码时,这些值将发送到PHP文件进行身份验证 如果用户经过身份验证,即他们有唯一的用户名/密码组合,我希望当前窗口关闭,新窗口打开 值被发送到PHP文件,用户正在被验证;但是,当关闭当前窗口的代码运行时(tianium.UI.currentWindow.close),抛出一个错误,指示打开新窗口的文件不存在。但引用新窗口的文件确实存在 我已经将似乎导致错误的代码移动到许多地方,但结果相同 var loginReq=Tita

我正在用钛构建一个iOS应用程序。第一个窗口是登录页面。当用户输入用户名和密码时,这些值将发送到PHP文件进行身份验证

如果用户经过身份验证,即他们有唯一的用户名/密码组合,我希望当前窗口关闭,新窗口打开

值被发送到PHP文件,用户正在被验证;但是,当关闭当前窗口的代码运行时(
tianium.UI.currentWindow.close
),抛出一个错误,指示打开新窗口的文件不存在。但引用新窗口的文件确实存在

我已经将似乎导致错误的代码移动到许多地方,但结果相同

var loginReq=Titanium.Network.createHTTPClient();
loginReq.onload=函数()
{
var json=this.responseText;
var response=JSON.parse(JSON);
如果(response.logged==true)
{
提醒(“欢迎”+response.name+”。您的电子邮件是:“+response.email”);
username.value='';
password.value='';
//这将在用户身份验证后创建新窗口。
var menuPage=Titanium.UI.createWindow({
标题:“菜单”,
塔巴:错,
url:'menuPage.js'
});
//这将关闭当前窗口。
Titanium.UI.currentWindow.close();
//这应该可以打开新窗口。
menuPage.open();
}
其他的
{
警报(response.message);
}
};

嗨,请尝试打开一个窗口

var menuPage = require('menuPage');
win = new menuPage({title:''});

谢谢

不要先关闭窗口,然后再打开新窗口,您应该先打开新窗口,打开后再从新窗口关闭旧窗口

menuPage.open({closeWindow: function(){ 
    curWin.close(); }
});
然后,在
menuPage.js
中,观察
open
事件,一旦触发,调用传递给
menuPage.js
的函数

然而,我建议跳入合金。此方法已过时

在Alloy中,您可以这样做:

Alloy.createController('menuPage', {closeWindow: function(){ 
    $.getView().close();
});
在菜单页:

$.getView().addEventListener('open',args.closeWindow());
如果您使用合金:

windowlogin.xml文件


有时
Titanium.UI.currentWindow
不返回当前窗口。尝试在网络文件中传递
窗口
,或在窗口中写入网络的onload作为回调。