跨所有视图控制器的iOS自定义视图

时间:2015-05-28 20:24:46

标签: ios objective-c swift uinavigationcontroller storyboard

我希望在一个屏幕中设置自定义视图,并将其放在我的应用程序中的所有视图控制器中。

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

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用应用程序窗口,并在需要时将此自定义视图添加为子视图。我在我的一个应用程序中使用它来显示通知(如果有任何区域)并且它工作得很好。

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

答案 1 :(得分:0)

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