2016-03-04 4 views
0

Я создаю небольшое приложение в Appcelerator и в своем index.js. Я создал 3 вкладки и открыл их в Tabgroup, довольно простой материал.Сбой при открытии appcelerator

Смотрите мой код ниже:

var win1 = Alloy.createController('getContacts').getView(); 
var win2 = Alloy.createController('getGroups').getView(); 
var win3 = Alloy.createController('settings').getView(); 

var tab1 = Ti.UI.createTab({ 
    window: win1, 
    icon:'KS_all.png', 
    backgroundSelectedColor:'#ffffff' 
}), 
tab2 = Ti.UI.createTab({ 
    window: win2, 
    icon:'KS_groups.png', 
    backgroundSelectedColor:'#ffffff' 
}), 
tab3 = Ti.UI.createTab({ 
    window: win3, 
    icon:'KS_settings.png', 
    backgroundSelectedColor:'#ffffff' 
}), 
tabGroup = Ti.UI.createTabGroup({ 
    tabs: [tab1, tab2, tab3], 
    tabsBackgroundColor:'#ff6600', 
    tabsBackgroundSelectedColor:'#ffffff', 
    exitOnClose:'true' 
}); 

tabGroup.open(); 

Все, кажется, работает нормально при установке приложения на моем телефоне, переключение между вкладками/окна работают, как они должны и события/функции в моих окнах стрельбы правильно.

Проблема начинается, когда я закрываю приложение, когда одно из окон моих вкладок открыто, и я нажимаю кнопку андроида назад. Приложение отключается, но когда я снова открываю приложение, это приводит к появлению предупреждающего сообщения о том, что приложение перестало работать.

Я не могу найти что-то не так с моим кодом, не правда ли, что это телефон (HTC M8) или Appcelerator?

EDIT

Я проверил предлагаемые методы, с помощью Soumya и Фокка, в результате чего в моем приложении не врезаться. Он также закрывается и продолжается, как и при перезапуске. Я изменил объявляющий win1, win2 и win3 с помощью createController к CreateWindow так:

var win1 = Ti.UI.createWindow({backgroundColor:'red', title:'Contacts'}); 
var win2 = Ti.UI.createWindow({backgroundColor:'green', title:'Groups'}); 
var win3 = Ti.UI.createWindow({backgroundColor:'blue', title:'Settings'}); 

И изменил exitOnClose в моем createTabGroup из строки в логическое значение (я глубоко извиняюсь Fokke). Кажется, это работает отлично. Отлично, теперь я могу продолжить создание своего приложения. Но как я могу использовать код (разбор json-данных) из моих js-файлов, которые я хотел использовать в качестве окон?

Копирование кода из моих файлов (getContacts.js, getGroups.js и settings.js) в index.js не должно быть решением, верно?

+0

Невозможно увидеть проблемы здесь. Может быть что-то не так с вашими контроллерами 'getContacts',' getGroups' или 'settings'. Попробуйте создать три простых окна и протестировать. – Shawn

+0

Могу ли я предложить шаги для отладки этого? 1) Попробуйте 'Ti.UI.createWindow ({backgroundColor: 'red'})' с 'красным',' зеленым', 'синим', для всех трех Windows, чтобы исключить используемую вами Windows. 2) Удалите 'exitOnClose: true' (который должен быть bool, а не строка, кстати), чтобы увидеть, является ли это фактором. Если да, сообщите об ошибке. –

ответ

0

В ссылке для документации есть пример кода. Можете ли вы попробовать запустить код и посмотреть, будет ли это работать для вас.

http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.TabGroup-method-close

Следующим шагом является CreateWindow и назначить его win1, win2 и win3, вместо того, чтобы делать createController.

Можете ли вы подтвердить, что указанные выше два сценария работают нормально.

+0

Tabgroup создается при запуске приложения, и я использую эти окна для загрузки и размещения внешних данных (из моей онлайн-базы данных). Не слишком ли этот процесс (создание всех окон, загрузка и настройка всех данных) при запуске? – Tomjesch

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