この状況で私が行ったことは次のとおりです。これは、JavaScript と Titanium のイベント処理の側面を利用しています。一般的な原則は、独自のカスタム イベントを作成し、コントロールでそれらを起動し、他の場所でリッスンすることです。
まずNextWindow.js
、window と tableview をカプセル化した CommonJS モジュールという名前のファイルがあるとします。行がクリックされるたびにそのイベントをキャプチャし、window で独自のカスタム イベントを発生させます。
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 のクリックをリッスンし、カスタム イベントを発生させます。