我有以下应用流程:
第一个屏幕是登录屏幕,如果登录成功,则选项卡组将打开。
这是代码:
app.js
var win = Titanium.UI.createWindow
({
title:'User Login',
url:'Login.js',
tabBarHidden:true,
backgroundColor:'gray',
navBarHidden:false
});
win.open();
Login.js
var win = Ti.UI.currentWindow;
// some UI controls
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
tabGroup.open();
}
}
现在如果我隐藏 currentWindow(win),一切正常但是登录视图会一直显示在后台!所以我想关闭“登录”窗口,然后打开选项卡组。所以我试过了:
win.close();
tabGroup.open();
但不起作用应用程序崩溃。
那么,如何关闭窗口然后显示选项卡Group ???
...谢谢
答案 0 :(得分:3)
解决了!!!正如slash197在 Login.js 中建议的那样,我试图关闭win
这是根窗口。所以我在 Login.js 中使用了一个虚拟窗口,然后关闭它并打开tabGroup
。喜欢:
<强> Login.js 强>
var win = Ti.UI.currentWindow;
var loginView = Ti.UI.createWindow
({
backgroundColor:'transparent'
});
并将所有UI组件添加到loginView
而不是win
。
然后是 Android
loginView.open();
iPhone
loginView.open();
win.add(loginView);
成功后: -
loginBtn.addEventListener('click', function(e)
{
//calling web service
if(isSuccess == 1)
{
var tabGroup = Titanium.UI.createTabGroup();
// code to create Tab
//for Android
loginView.close();
//for iPhone
win.remove(loginView);
tabGroup.open();
}
}
注意: - 不确定这是最佳方法。但它对我有用。
答案 1 :(得分:2)
如果该窗口是第一个而不是根元素,则无法关闭。您可以尝试删除其中的所有子项,并将其背景设置为透明,然后打开tabGroup
。