2012-03-26 14 views
1

Ich habe folgenden App-Fluss:Titanium TabGroup: Wie Fenster zu schließen und dann die Registerkarte Gruppe anzuzeigen?

Der erste Bildschirm ist Login-Bildschirm und wenn Login Erfolg bekommt die Registerkarte-Gruppe öffnet.

hier ist der Code:

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(); 
    } 
} 

Nun, wenn ich die currentWindow (win) jedes Ding Werke verstecken gut Aber Login-Ansicht wird im Hintergrund von allen t angezeigt er Zeit !!! Ich möchte also das Login-Fenster schließen und dann die Tab-Gruppe öffnen. Also ich habe es versucht:

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

Aber funktioniert nicht Anwendung wird abgestürzt.

Also, Wie Fenster zu schließen und dann die Registerkarte Gruppe anzeigen ???

Danke ....

Antwort

3

Gelöst !!! Wie slash197 in vorgeschlagen hat Login.js Ich habe versucht, win zu schließen, die das Root-Fenster war. Also habe ich ein Dummy-Fenster innerhalb der Login.js und schließen Sie es und die offene tabGroup. Wie:

Login.js

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

Und hinzugefügt alle UI-Komponente in die loginView statt win.

dann für Android

loginView.open(); 

Und für iPhone

loginView.open(); 
win.add(loginView); 

Nach Erfolg: -

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(); 
    } 
} 

Hinweis: - Nein t sicher, dass es der beste Ansatz ist. Aber es funktioniert für mich.

2

Wenn das Fenster das erste ist, als es das Wurzelelement ist und nicht geschlossen werden kann. Sie könnten versuchen, alle seine Kinder zu entfernen und seinen Hintergrund auf transparent setzen, dann öffnen Sie Ihre tabGroup.

+0

Danke für die schnelle Antwort ... – Maulik

+0

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

+0

@adrian aproape de zine, Targu Mures – slash197