1

我正在为部署在 Android 设备中的应用程序使用 swanify 的 Titanium Navigation Controller https://github.com/swanify/Titanium-Navigation-Controller 。

我正在尝试将我从此处的表行中选择的数据传递回上一页并在那里填充一个文本字段。

任何人有任何想法如何做到这一点?我正在研究使用事件,但它似乎对我不起作用。

谢谢你。:)

4

1 回答 1

0

这是我在这种情况下所做的,它利用了 JavaScript 和 Titanium 的事件方面,一般原则是拥有自己的自定义事件,在控件上触发它们,然后在其他地方监听。

首先假设我们有一个名为NextWindow.jsCommonJS 模块的文件,它封装了一个窗口和一个表格视图,每次单击一行时,我们都会捕获该事件,然后在窗口上触发我们自己的自定义事件:

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. 假设你有一个 TableView nextWindow,监听 TableView 点击,然后触发自定义事件:

于 2013-03-02T20:05:53.310 回答