いつもお世話になっております。
今回の質問は、表題の通りです。

現在野球のアプリを開発中の素人です。

詳細は下記の通りです。

投球が通過した場所をタップで指定。その場所にボールを表示(GameScene 以下 G)

タップしたゾーンがストライクかボールかを判別(G)

打者の動き(空振りとか見送り)をUISegmentedControlで指定(ViewController 以下 V)

その結果、ストライクかボールかを判別(V)

その結果をスコアボードに表示(V)

投球結果ボタンをタップ。OKなら投球を完了して、UISegmentedControlの結果をクリア。
同時に表示したボールも消える(G)

次の投球待ち(V)

という具合にしたいのですが、
そのボールを消すことができません。

この間のデータ(変数)はDelegateを使って、GからVに変数の受け渡しをしております。
ですが、投球完了ボタンをタップした時に、VからGへの受け渡しがうまくいっていないようです。
UISegConがVにあるのと、そのボタンをTabBarにStoryBoradを使っている関係で、表示したボールを消す時は、本当に一瞬だけ(ボールを消すため)だけにGに変数を渡し、すぐにGに戻ってくる必要があります。
何か分かりやすい方法はありますか?
(説明が下手ですみません)
例えば、
データの受け渡し(行ったり来たり)の際に、関数func()を使うとか?

よろしくお願いします。