私はダイアログ関数を調べて、あなたが望むことを正確に行う方法を見つけました!APIドキュメントはこれについてあまり明確ではありません、私は試してみなければなりませんでした...
サンプルコード
メインウィンドウ:
//Example function to apply configuration
function applyConfig(configObject){
setSomething(configObject.field);
...
}
//Create a dialog, and give it the above function as an `onclose` callback:
var dialog=Ti.UI.showDialog({url:"app://config.html",onclose:applyConfig});
でconfig.html
:
//An example of an object that could hold your config data
var config={field:0,example:"hello",...};
//Function to call in order to pass that object back to the main window callback:
Ti.UI.getCurrentWindow().close(config);
説明
したがって...メインウィンドウで、を使用してダイアログウィンドウを作成し、Ti.UI.showDialog
それにコールバックを渡します(params.onclose
、上記を参照)。ダイアログウィンドウで、ユーザーがhtmlインターフェイスを介して構成オプションを設定すると、構成データをオブジェクトに保存し、それをウィンドウのcloseメソッドに渡すだけで、メインウィンドウのコールバックに渡されます。 。
ノート
Ti.UI.showDialog
実際にを呼び出しTi.UI.createWindow
、Ti.UI.UserWindow
オブジェクトを返します。ダイアログのパラメータ、結果、およびoncloseコールバックに関連するいくつかのフィールドとメソッドが追加されています。
で渡されるダイアログパラメータには、またはTi.UI.showDialog({url:"...",parameters:{...}})
を使用してダイアログウィンドウ内からアクセスできます。Ti.UI.getCurrentWindow().getDialogParameter("name")
Ti.UI.getCurrentWindow()._dialogParameters["name"]