如何在首次加载应用程序时隐藏主弹出视图?

Posted

技术标签:

【中文标题】如何在首次加载应用程序时隐藏主弹出视图?【英文标题】:How to hide the master popover view on first-time app load? 【发布时间】:2012-07-27 18:23:08 【问题描述】:

我有很好的辅助函数,允许我显示/隐藏主弹出视图控制器。但是,我一生无法弄清楚如何在初始化时隐藏它,以便在应用程序首次启动时隐藏它。

我已经尝试了几件事(例如尝试从 viewLoaded 或 viewDidAppear 中关闭),但这些会引发奇怪的错误(例如,滑块计数过多...等)。

现在我开始相信必须有一种更简单且正确的方法来做到这一点。

【问题讨论】:

你在哪里展示你的UIPopoverController?如果你能发布代码,那就太好了。 老实说,我不知道。当我创建项目时,我只使用了 UISplitViewController 模板。 popover 控制器引用是在 details 视图控制器中定义的,这对我来说很奇怪。然而,IB 认为它比这更复杂。 【参考方案1】:

您是否要隐藏 splitviewController 主弹出框?哪个方向会使这个问题更具体。我假设您实际上是在尝试在横向中隐藏 SplitView MasterPopover(因为它应该已经隐藏在纵向中)。

这样做: 你的detailViewController 应该有UISplitViewControllerDelegate。只需将此代码放入:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
    return YES;

这将使 popoverView 在应用启动时隐藏。请让我知道这对你有没有用。

【讨论】:

我试试看。但我不确定我是否应该覆盖这个方法。我相信它只适用于 ios 5.0+,而且,当我启用此方法时,我相信其他 2 个 init 方法已过时(它们不再被调用)。此外,在横向模式下,弹出框始终存在。肖像是我希望在启动时隐藏的模式。 好的。我添加了这个方法并让它返回 YES。但是弹出窗口仍然最初显示(在纵向模式下)。 道歉。我不需要上述建议。问题是我有一个错误,我强制弹出框显示块动画何时完成(在应用程序启动时调用动画)。 正确,正如我之前提到的,“它应该已经隐藏在肖像中”如果没有,你可能就是这样做的人 :) 干杯!

以上是关于如何在首次加载应用程序时隐藏主弹出视图?的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 上的圆形 UIImageView 在首次加载时不起作用

如何使用 SwiftUI 在首次应用启动时启动教程?

首次运行时加载不同的视图

UISplitViewController:如何强制在应用启动时显示主弹出框? (肖像)

Swift Scene Delegate 在首次启动时不运行代码

UITableViewCell 在首次加载时无法正确呈现