我正在为我在Android设备中部署的应用使用swanify的Titanium Navigation Controller https://github.com/swanify/Titanium-Navigation-Controller。
我正在尝试将我从表格行中选择的数据传回上一页并在那里填充文本字段。
任何人都有任何想法如何做到这一点?我正在研究使用事件,但它似乎并没有为我工作。
谢谢你。 :)答案 0 :(得分:0)
以下是我在这种情况下所做的事情,它利用了JavaScript和Titanium的事件方面,一般原则是拥有自己的自定义事件,在控件上触发它们,然后在别处听。
首先假设我们有一个名为NextWindow.js
的文件,它是一个封装窗口和tableview的CommonJS模块,每次单击一行我们捕获该事件,然后触发我们自己的自定义事件窗口:
function NextWindow() {
var self = Ti.UI.createWindow();
var tableView = Ti.UI.createTableView();
// Other initialization
....
....
tableView.addEventListener('click', function(e) {
// You may have to use e.rowData.title depending on how you created the table view
var rowTitle = e.row.title;
// Now fire a custom event on the window whenever a row is selected
// send the title through as data
self.fireEvent('table_row_selected', {title : rowTitle});
});
return self;
}
module.exports = NextWindow;
当你创建一个NextWindow
以推送到导航堆栈时,为它添加一个自定义事件的监听器,这是在上一个窗口的文本框内:
var NextWindow = require('NextWindow');
var nextWindow = new NextWindow();
nextWindow.addEventListener('table_row_selected', function(e) {
// Do what you want here with the passed back data
var title = e.title;
some_label.text = title;
});
// Open the next window on the NavigationController stack
nav.open(nextWindow);
现在正在侦听附加到nextWindow
的自定义事件。假设您在nextWindow
中有一个TableView,请监听TableView点击,然后触发自定义事件: