画面を遷移させよう!


画面遷移機能のchange-pageメソッドとデータの受け渡し

画面を遷移させよう!

画面を遷移するときにはScreenクラスのchange-pageメソッドを使用します。遷移先画面のScreenクラスをこのメソッドの第一引数に指定してください。また、遷移先画面から引き渡したいデータがある場合にはキーワード引数dataを使いこのメソッドに渡します。また、transitionパラメーターは画面遷移する場合のアニメーションを指定できます。PageTransition.slideを指定すると右方向に画面がスライドして画面遷移します。
これ以外にもさまざまなアニメーションを用意しています。
詳しくはCurl ドキュメントの「Screen-of」マクロの「change-page」メソッドを参照してください。
対象は「COM.CAEDE.CAEDESAMPLE」内の「sparent-top.scurl」内の「SParentTopScreen」 クラスです。
対象のコードではListViewerに表示されるListViewItemDataに対してリストがタップされた時に画面遷移する設定をしています。

「sparent-top-screen.scurl」の「SParentTopScreen」クラス

タブレットの場合は右エリアに表示される詳細情報が画面遷移することなく、動的に変わるように設定しています。対象は「COM.CAEDE.CAEDESAMPLE」内の「sparent-top.scurl」内の「TParentTopScreen」 クラスです。
画面遷移をせずに表示しているブロックを更新する場合はScreenクラスのactive-blockメソッドを使用します。パラメータなどはchange-pageメソッドと同じです。
例では表示しているDetailBodyBlockの表示しているデータを更新するためにactive-blockメソッドを使用しています。

「tparent-top-screen.scurl」の「TParentTopScreen」クラス


遷移先画面での初期処理とデータの受け取り

遷移先の画面ではまずScreenクラスのコンストラクタの内容が実行されますので、遷移してきたときに画面を初期化する処理はここに記述しておくことができます。前の画面からchange-pageメソッドに渡されたデータは、on-page-changedメソッドで受け取ることができます。

対象は「COM.CAEDE.CAEDESAMPLE」内の「edit-body-block.scurl」内の「EditBodyBlockScreen」クラスの「on-page-changed」メソッドです。on-page-changedメソッドにて渡されたdataを判定して、SimpleImageGraphicのsourceやTextFieldのvalueなどに設定しています。これにより更新画面でデータを表示しています。

「edit-body-block.scurl」の「EditBodyBlockScreen」クラス

また、EditTopBlockScreenは新規画面の場合と更新画面の場合で同じクラスを使用しています。そのためif文にてコントロールへのデータの反映などの設定処理を分岐させています。