2012-03-26 2 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 (выигрыш) каждая вещь работает fine Но вид входа отображается в фоновом режиме всех t он время !!! Поэтому я хочу закрыть окно Login и открыть группу вкладок. Поэтому я пробовал:

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.

Тогда для 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

+0

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

+0

@adrian aproape de tine, Targu Mures – slash197

Смежные вопросы