「Send This Data to 〇〇 Screen」の理屈が知りたい

【質問の背景】
作成しているアプリに下記のような機能を組み込もうと思い、
まずはこの機能単体のアプリを作りました。

①ドロップダウンリストからa又はb又はcを選択して「決定」ボタンを押す
②カウントダウンタイマーを使って、①でaを選択した場合は1~5の値で乱数を発生させたうえでa専用のページに飛び、bを選択した場合は6~10の値で乱数を発生させたうえでb専用のページに飛び、cを選択した場合は11~15の値で乱数を発生させたうえでc専用のページに飛ぶ

機能単体のアプリについては上記の通り問題なく実装できたのですが、
こちらを全く同じように作成中のアプリに組み込もうとしたところ、うまくできませんでした。
具体的には、a用のカウントダウンタイマーのみ完全に機能するものの、b・c用のカウントダウンタイマーについては乱数が発生せず、ページ遷移の機能のみ動作するといった状況です。

なぜだろうと思い2つのアプリを見比べていたところ、上手く機能しない方のアプリには、
最初のページの「決定」ボタンや、a・b・c専用のページの戻るボタンのClick Actionの箇所に、
「Send This Data to 〇〇 Screen」と表示されていることに気づきました。

image

正直、「Send This Data to 〇〇 Screen」という表示については、
今までよく理解せずに制作を進めていたのですが、
これを機にしっかり理解したいと考えております。

【質問】
「Send This Data to 〇〇 Screen」という表示は
どういった場合に表示されて、どういった影響を及ぼすものなのでしょうか。
(作成中のアプリに上手く組み込めない問題を解決するにはどうしたらいいのでしょうか)

@adaloman1 さん

上記のアプリ確認させていただいたところ、
乱数ちゃんと発生してるように見受けたのですがまだお困りでしょうか・・・??

「Send This Data to 〇〇 Screen」に関しましては、

このカウントダウンのアプリでいう

(Send This Data):条件分岐ページで選択した”A”というデータを
(to ○○ Screen):Count Downページで表示できる

という解釈になるかと思います。
うまく伝わりますでしょうか・・・?><

「いいね!」 2

分かりづらい記載になっており申し訳ございません。
添付した「カウントダウン」アプリにつきましては、問題なく実装できたのですが
別途作成しているアプリにこの機能をそのまま組み込もうとしたところ、上手くいかないという意図でした。

データを次の画面に送っているということは何となく理解できたのですが、
例えば、機能単体を実装した「カウントダウン」アプリのa専用ページの「戻る」ボタンにはデータを送る処理がないのに
image

別途作成中のアプリに同じ機能を追加した場合のa専用ページの「戻る」ボタンには、なぜかデータを送る処理が生まれてしまいます。
image

何がどういう状態になると、データを送るという処理が生まれるのでしょうか・・?
(もしかしたらカウントダウンタイマーによる乱数発生がうまくできない問題と、「Send This Data to 〇〇 Screen」の表示は無関係かもしれないですが。。)

CC: @muku

今回意図としては、「Send This Data to 〇〇 Screen」 の意味を知りたいということですよね。
*挙動事体は、問題ないと思いましたので。

まず、前提条件です。
基本的には、データを一意で設定できる時に、現れます。

例えば、
ケース①乱数をCreateした時 などにSendされます。
ケース②CountDownから作られた乱数を引き継ぐとき

いまのアプリで、Send がでる 出ない? というのは、
Available Dataが存在しているか?
?否かです。

で、そのAvailable Data がなぜ出るかと言うと、ScreenにCurrentを決める要素が確定している場合にAvailable Data が出てきます。

つまり
Available Data があるScreenからScreenにLinkをした時
その送り先のScreenで、かならずCurrentが決まる場合にSendデータが出てきます。

別途作成中のアプリに同じ機能を追加した場合のa専用ページの「戻る」ボタンには、なぜかデータを送る処理が生まれてしまいます。

ここから本題です。
通常のScreenであれば、データを送る処理が出る というのが正しいです。
しかし、今回のアプリの場合、「条件のScreenがをWelcomeScreenに設定しているため、Sendがでてません。*welcomescreenでは、Available Data が無いユーザー?(Screen?)が存在するためです。

説明動画

余談ですが、、
今回、乱数DBを作って、その乱数で、行先を操作する、、
というのは分かるのですが、動作を見ていると基本、
Userごとに一つの乱数保持しかないように思います。
であれば、素直に、UserDBに格納しておけば、今回のような面倒なことにならないかな―とは思いました。基本的にはCurrent User の状態が常に変わっていれば良いだけなので。

「いいね!」 2

ご回答いただきありがとうございます!

上記の部分については全く認識できておらず、
同じようにやっているのになぜ違う処理になってしまうのか、という悩みがとてもスッキリしました。

また、UserDBはログイン機能を用いないと活用できないと勝手に思い込んでいたのですが
試しに乱数DBではなくUserDBに乱数を格納させて諸々調整したところ、作成中のアプリでもちゃんど動作するようになりました!!
(なぜ乱数DBではダメでUserDBならOKなのかについては正直まだ理解できてないですが・・)

mukuさん、tsubasaさん
初学者の意図が汲み取りづらい質問にご丁寧に対応いただきありがとうございました。

「いいね!」 2

おお、良かったです~。
頑張ってくださいね^^

「いいね!」 1