从可重用视图中呈现弹出视图?

Presenting popover view from inside reusable view?

我在 iOS 开发方面还很陌生,所以请原谅我的任何误解。我正在 Objective-C 中创建一个应用程序,它在许多屏幕(称为主屏幕)中有一个通用的可重用视图(我们称之为 "Banner View")。在这个 Banner View 中有一个按钮,用于显示弹出式帮助显示(称之为 "Help View")。我正在尝试找出执行此操作的最佳方法,以便我可以重复使用尽可能多的视图。

我尝试过的:

  1. 创建两个自定义笔尖(一个用于横幅视图,一个用于帮助视图)。这适用于在所有主屏幕上显示横幅视图(使用 UIView -> 自定义 Class:横幅视图),但我无法弄清楚如何在包含横幅的主屏幕中动态显示帮助视图查看.

  2. 创建带有横幅视图和帮助视图的横幅故事板。我创建了相应的横幅控制器(故事板中的初始控制器)和我将视图传输到的帮助控制器(与弹出窗口链接)。然后我尝试在我的主屏幕中放置一个容器视图,并将视图控制器自定义 class 设置为 Banner Controller。这根本没有显示横幅。

最好的方法是什么?有可能吗?

我的解决方案是将两个视图都放在堆栈视图中,hide/show 帮助视图。

您可以从横幅视图中获取最顶部的 viewcontroller。然后显示您的帮助屏幕(帮助屏幕应该是 UIViewController 而不是 UIView)。 要获得顶视图控制器,您可以使用此答案中的代码:。之后您可以使用此代码显示您的帮助视图:

[topViewController presentViewController:HelpViewController animated:YES completion:nil];