【问题标题】:How to add a view in all view controllers from a view Controller如何从视图控制器在所有视图控制器中添加视图
【发布时间】:2017-11-27 20:32:21
【问题描述】:

player View Controller Snap 我正在 swift 3 中开发音频播放器应用程序。我有一个播放器视图控制器,它有一些音频控制按钮,这个视图控制器与其他“播放列表”视图控制器相连。从我的家和其他视图控制器中,我使这个播放器视图控制器显示为 'present modalally' 。现在,当我在不让播放器停止的情况下返回/转到另一个视图时,我需要添加一个具有“停止按钮”和其他音频控制器并出现在所有视图控制器中的通用视图。 (它具有背景音频兼容性) 我是 swift 的新人。试图找出所有步骤来做到这一点。 任何帮助表示赞赏。谢谢!

【问题讨论】:

    标签: ios swift3


    【解决方案1】:

    一种解决方案可能是让播放器视图控制器只是一个视图而不是视图控制器。您可以通过将其设为 xib 来做到这一点。从您的所有视图控制器中,您可以将此播放器 xib 作为子视图添加到视图控制器。这取决于您拥有多少个视图控制器。您还需要在后台更新播放器视图的服务。这可以通过通知来完成,通知可以从播放器控制器逻辑发出,视图控制器将接收播放器更新通知,进而更新播放器视图。用一段话来解释有点难。

    【讨论】:

    • 好吧,这个播放器视图控制器连接了10多个视图控制器。所以,在我目前的情况下,这不是时间效率。还有其他解决方案吗?这是我的播放器视图控制器快照:i.stack.imgur.com/y4lHS.png
    • 是的,有很多风投。但是,我假设您可以使用 ViewController 的扩展名,并且最终可能会使它变得不那么糟糕。扩展必须编写代码以将播放器添加为子视图,并处理通知。
    【解决方案2】:

    这更多是关于 UI 设计,而不是关于 Swift。一种可能性是创建一个容器视图控制器,它拥有您的音频控件并为您必须显示的各种其他视图控制器提供一个容器视图。

    (参见:https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html

    容器控制器将管理控件的可见性以及分配给它们和内容视图的空间量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多