私がやろうとしていることを正確に説明するために、この質問を始めます。
ViewController A と B があります。どちらも、特定のテキストを読み取る AVSpeechSynthesizer を実行します。私の問題は、同じ AVSpeechSynthesizer を両方の VC の UI 要素とやり取りすることです。次に例を示します。
VC AI を使用しているときに、テキストを含む行があり、その行をタップすると、AVSpeechSynthesizer が音声を生成します。Delegate メソッドが実行され、プログレス バーが毎秒更新されます。しかし、同じ行をもう一度タップすると、別の新しい VC を NavigationController にプッシュする必要があり、この新しい VC には同じ要素 (進行状況バー、再生/一時停止ボタン) があり、この UI を更新できません以前の VC で実行されているデリゲートと。オーディオは停止しませんが、VC B からのコントロールは、VC A からの AVSpeechSynthesizer デリゲートによって更新されません。
要するに、2 つの ViewController、同じ UI コンポーネント (再生/一時停止ボタン、プログレス バー)、2 つの UI を同時にフェッチする委譲を持つ AVSpeechSynthesizer は 1 つだけです。
これはここ数年で初めての質問であり、私の問題がはっきりしていないことを残念に思います。そうでない場合は、もっと説明しようとすることができます。