iOS 所有视图控制器的自定义视图
iOS custom view across all view controllers
我想在一个屏幕中设置自定义视图,并在我的应用程序中的所有视图控制器中使用它。
我找到了使用容器视图的解决方案。所以我创建 RootViewController
并为其提供容器视图,并将我的原始 MainViewController
设置为嵌入到容器中。我向 RootViewController
添加了视图,在第一个视图控制器 (MainViewController
) 中它看起来不错。
问题是当我通过 Push segue 转到另一个视图控制器时。新的视图控制器覆盖了整个屏幕(这没问题)并且也覆盖了自定义视图。我在想,如果我添加带根目录的导航控制器 MainViewController
并且该导航控制器将嵌入 RootViewController
中,这可能会有所帮助,但结果是一样的。我将导航栏设置为隐藏(与状态栏相同),因为我想隐藏。
那么问题出在哪里呢?或者您将如何向所有屏幕添加自定义视图?这个自定义视图应该作为全局视图工作(我正在使用 NSTimer
并计算时间)所以我的继承解决方案不适合我。
你可以反过来试试。创建一个永远不会在您的根视图控制器和容器视图中更改的视图,只需更改容器视图的内容,具体取决于您要在未更改的视图旁边显示的内容。
您可以使用应用程序 window 并在需要时将此自定义视图添加为子视图。我已经在我的一个应用程序中使用它来显示通知(如果有的话)并且效果很好。
获取应用程序 Window 的句柄并向其添加子视图。可以从单例 class 或 App 委托创建自定义视图。
我想在一个屏幕中设置自定义视图,并在我的应用程序中的所有视图控制器中使用它。
我找到了使用容器视图的解决方案。所以我创建 RootViewController
并为其提供容器视图,并将我的原始 MainViewController
设置为嵌入到容器中。我向 RootViewController
添加了视图,在第一个视图控制器 (MainViewController
) 中它看起来不错。
问题是当我通过 Push segue 转到另一个视图控制器时。新的视图控制器覆盖了整个屏幕(这没问题)并且也覆盖了自定义视图。我在想,如果我添加带根目录的导航控制器 MainViewController
并且该导航控制器将嵌入 RootViewController
中,这可能会有所帮助,但结果是一样的。我将导航栏设置为隐藏(与状态栏相同),因为我想隐藏。
那么问题出在哪里呢?或者您将如何向所有屏幕添加自定义视图?这个自定义视图应该作为全局视图工作(我正在使用 NSTimer
并计算时间)所以我的继承解决方案不适合我。
你可以反过来试试。创建一个永远不会在您的根视图控制器和容器视图中更改的视图,只需更改容器视图的内容,具体取决于您要在未更改的视图旁边显示的内容。
您可以使用应用程序 window 并在需要时将此自定义视图添加为子视图。我已经在我的一个应用程序中使用它来显示通知(如果有的话)并且效果很好。
获取应用程序 Window 的句柄并向其添加子视图。可以从单例 class 或 App 委托创建自定义视图。