I am having a problem passing variables in my iphone titanium App. Below is my AppTabGroup.js file. There is an event listener called 'grantEntrance'. When this is fired I need the variables event.name and event.email passed to all the new tabs. For some reason this is not working for me. I end up getting undefined errors. I think my question is how do I set global variables? Like event.name so it shows up anywhere in the application.
function AppTabGroup() {
//declare module dependencies
var AppWindow = require('ui/AppWindow');
var OverviewWindow = require('ui/OverviewWindow');
var LeadWindow = require('ui/LeadWindow');
var CaseWindow = require('ui/CaseWindow');
var ResourcesWindow = require('ui/ResourcesWindow');
//create module instance
var self = Ti.UI.createTabGroup();
//create app tabs
var win1 = new OverviewWindow(L('Login')),
win2 = new CaseWindow(L('Cases'));
win3 = new LeadWindow(L('Leads'));
win4 = new ResourcesWindow(L('Resources'));
var tab1 = Ti.UI.createTab({
title: L('Login'),
icon: '/images/KS_nav_ui.png',
window: win1
});
win1.containingTab = tab1;
var tab2 = Ti.UI.createTab({
title: L('Cases'),
icon: '/images/KS_nav_views.png',
window: win2
});
win2.containingTab = tab2;
var tab3 = Ti.UI.createTab({
title: L('Leads'),
icon: '/images/KS_nav_views.png',
window: win3
});
win3.containingTab = tab3;
var tab4 = Ti.UI.createTab({
title: L('Resources'),
icon: '/images/KS_nav_mashup.png',
window: win4
});
win4.containingTab = tab4;
//Load Initial Login tab
self.addTab(tab1);
//If Login is successful then the below even will fire and the other tabs will be loaded
Ti.App.addEventListener('grantEntrance', function(event)
{
win2.name = event.name;
win2.email = event.email;
self.addTab(tab2);
self.addTab(tab3);
self.addTab(tab4);
self.removeTab(tab1);
});
return self;
};
module.exports = AppTabGroup;
Below is my CaseWindow.js tab
function AppWindow(title) {
var Main = Ti.UI.createWindow({
title:title,
backgroundColor:'white'
});
//Closed Case Button
var ccButton = Titanium.UI.createButtonBar({
labels:['Closed'],
backgroundColor:'#336699'
});
Main.setLeftNavButton(ccButton);
//New Case Button
var ncButton = Titanium.UI.createButtonBar({
labels:['New Case'],
backgroundColor:'#336699'
});
Main.setRightNavButton(ncButton);
ncButton.addEventListener('click', function() {
//containingTab attribute must be set by parent tab group on
//the window for this work
Main.containingTab.open(Ti.UI.createWindow({
title: L('newCaseWindow'),
backgroundColor: 'white'
}));
});
var msg = Titanium.UI.createLabel({
text:"Your Name is " + win.name,
//text:"You have successfully logged in. Upon logging in we sent back your email address and your name. You can pass all kinds of data simply by creating objects on your window.\n\nYour email is:\n" + email + "\n\nyour name is:\n" + name,
top:10,
left:10,
width:300,
height:'auto'
});
Main.add(msg);
return Main;
};
module.exports = AppWindow;