【问题标题】:iOS custom view across all view controllers跨所有视图控制器的 iOS 自定义视图
【发布时间】:2015-08-11 13:03:51
【问题描述】:

我想在一个屏幕中设置自定义视图,并在我的应用程序中的所有视图控制器中使用它。

我找到了使用容器视图的解决方案。所以我创建RootViewController 并给它容器视图并将我原来的MainViewController 设置为嵌入容器中。我向RootViewController 添加了视图,在第一个视图控制器(MainViewController)中看起来不错。

问题是当我通过 Push segue 转到另一个视图控制器时。新的视图控制器覆盖了整个屏幕(没关系),也覆盖了自定义视图。我想如果我添加带有根MainViewController 的导航控制器会有所帮助,并且此导航控制器将嵌入RootViewController 但结果是相同的。我将导航栏设置为隐藏(状态栏相同),因为我想隐藏。

那么问题出在哪里?或者您如何将自定义视图添加到所有屏幕?这个自定义视图应该作为全局视图(我使用NSTimer 并计算时间),所以我的继承解决方案不适合我。

【问题讨论】:

  • 您可以为您的计时器(甚至为您的视图)创建一个单例,并使用一些基本视图控制器,您可以在其中以编程方式添加此视图。或者你可以在appDelegate中添加强属性

标签: ios objective-c swift uinavigationcontroller storyboard


【解决方案1】:

您可以使用应用程序窗口并在需要时将此自定义视图添加为子视图。我已经在我的一个应用程序中使用它来显示通知(如果有的话)并且效果很好。

获取应用程序窗口的句柄并向其添加子视图。可以从单例类或 App 委托创建自定义视图。

【讨论】:

    【解决方案2】:

    你可以反过来试试。在根视图控制器和容器视图中创建一个永远不会更改的视图,并根据您想要在不变视图旁边显示的内容更改容器视图的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      相关资源
      最近更新 更多