ViewController 禁用交互 - iOS

Posted

技术标签:

【中文标题】ViewController 禁用交互 - iOS【英文标题】:ViewController disable interaction - iOS 【发布时间】:2013-07-11 17:14:08 【问题描述】:

我决定从用户那里收集数据。我开始在 mainViewController 的顶部添加 viewController,如下图所示。 我的问题是用户可以与 mainViewcontroller 交互,在我的例子中是 mapKit。每当用户滚动选择器视图时,它也会影响按钮上的 mapViewController!

我不希望用户能够与 mainViewController 交互。

【问题讨论】:

你在地图视图上试过userInteractionEnabled = NO吗? 您使用的是覆盖层而不是独立的视图控制器吗?如果您的弹出窗口的视图控制器已正确创建并正确处理触摸事件,则不应将事件传播到层次结构中的上方/之前的视图。也许您可以将弹出窗口设置为第一响应者,并且在被解雇之前不允许它退出第一响应者状态? 【参考方案1】:

您可以在显示叠加层时禁用mainViewController 的用户交互,如下所示:

mainViewController.view.userInteractionEnabled = NO;

【讨论】:

一旦用户年龄增长,我想转移到另一个 viewController,最好的方法是什么?【参考方案2】:

另一种方法是截取 mainViewController 视图的屏幕截图,并将该图像用作性别和年龄集合视图的背景。这样做的好处是只需要显示一个视图控制器,也许可以节省内存。

【讨论】:

以上是关于ViewController 禁用交互 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

弹出窗口可见时禁用所有交互

iOS10 UI教程禁用视图与用户的交互

iOS UIScrollViewKeyboardDismissModeInteractive 禁用文本字段交互

iOS 7.0 UITableView backgroundView 中的控件禁用了用户交互

与 Push 交互后导航到特定 ViewController

在 iOS 应用程序的 SVProgressHUD 中禁用用户交互不起作用