2012-03-26 59 views
1

我有以下流程的应用程序:Titanium TabGroup:如何关闭窗口然后显示选项卡Group?

第一个屏幕是登录屏幕,如果登录成功,选项卡组将打开。

这里是代码:

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)每一件事作品很好但是登录视图会显示在所有t的背景中他的时间!所以我想关闭登录窗口,然后打开标签组。所以我尝试过:

win.close(); 
tabGroup.open(); 

但是不起作用应用程序崩溃。

那么,如何关闭窗口然后显示标签组?

感谢....

回答

3

解决! as 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(); 
    } 
} 

注: -没有确定这是最好的方法。但它适用于我。

2

如果该窗口是第一个比它的根元素,它不能被关闭。你可以尝试删除所有的孩子,并将其背景设置为透明,然后打开你的tabGroup

+0

感谢您的快速回复... – Maulik 2012-03-26 14:28:39

+0

@ slash197 De unde esti ??? Din ce oras? – adrian 2012-03-26 14:33:05

+0

@adrian aproape de tine,Targu Mures – slash197 2012-03-26 14:34:05

相关问题