我将开始这个问题,试图准确解释我想要做的事情:
我有ViewControllers A和B.它们都将运行AVSpeechSynthesizer读取某些文本。我的问题是我使用来自两个VC的UI元素交互相同的AVSpeechSynthesizer,例如:
当我在VC A上时,我有一行有文本,我点击该行,AVSpeechSynthesizer生成语音。我的Delegate方法运行,进度条每秒更新一次。但是当我在同一行上再次点击时,我必须将另一个新VC推入NavigationController,在这个新VC中我有相同的元素(进度条,播放/暂停按钮),这个UI我无法获得它使用在前一个VC上运行的Delegate进行更新。音频不会停止,但来自VC B的控件不会被VC A的AVSpeechSynthesizer代表更新。
简而言之: 2 ViewControllers,相同的UI组件(播放/暂停按钮,进度条),只有一个AVSpeechSynthesizer,同时获取2个用户界面。
这是我多年来的第一个问题,我担心我对自己的问题不是很清楚。如果不是,我可以尝试解释更多。