2012-03-26 10 views
1

私は以下のアプリの流れを持っています:チタンタブグループ:ウィンドウを閉じてタブグループを表示する方法は?

最初の画面はログイン画面です。ログインが成功すると、タブグループが開きます。

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(勝利)を非表示にした場合、すべてのものの作品:ここ

コードですしかし、ログインビューはすべてのtのバックグラウンドで表示される彼は時間!だから私は、ログインウィンドウを閉じて、タブグループを開きます。だから私は試した:

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

しかし、アプリケーションがクラッシュする動作しません。

ウィンドウを閉じてタブを表示する方法

おかげで....そのウィンドウは、それがルート要素だと閉じることができないよりも、最初のものである場合

答えて

3

解決済み! slash197が提案したようにLogin.js私はルートウィンドウだったwinを閉じようとしていました。だから、私はLogin.jsの中にダミーのウィンドウを使い、それを閉じてtabGroupを開いた。同様に:

Login.js

var win = Ti.UI.currentWindow; 
var loginView = Ti.UI.createWindow 
({ 
    backgroundColor:'transparent' 
}); 

そしてloginView代わりのwinにすべてのUIコンポーネントを追加しました。

その後

loginView.open(); 

そしてのためのiPhoneのAndroid ため

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

+0

@ slash197 De unde esti ??? Din ce oras? – adrian

+0

@adrian aproape de tine、Targu Mures – slash197

関連する問題