2012-03-26 116 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

相關問題