iOS 弹出框在关闭后不会消失

     2023-03-13     275

关键词:

【中文标题】iOS 弹出框在关闭后不会消失【英文标题】:iOS Popover Does Not Go Away After Dismiss 【发布时间】:2018-12-31 05:48:13 【问题描述】:

我们有一个视图控制器在单击时显示来自UIBarButtonItem 的弹出窗口。弹出框显示得很好,但是当我们单击弹出框内的取消按钮(调用dismiss(_:completion:))时,或者当我们在弹出框外部点击时,弹出框消失了。但是,视图控制器中显示弹出框的所有内容仍然不可点击。当我们检查视图层次结构时,我们可以看到弹出框以及它的UITrasitionView 仍然在窗口上,并且阻塞了它后面的视图控制器,即使在模拟器中弹出框不再可见。可能是什么原因?

我们已经正确设置了弹出框控制器的buttonBarItem,并且它可以正确显示。只有当它被驳回时,问题才会出现。

代码如下所示:

let controller = SettingsController() // the settings controller
controller.popoverPresentationController?.barButtonItem = sender // the UIBarButtonItem
self.present(controller, animated: true, completion: nil)

即使我们将 SettingsController 替换为普通的 UIViewController,也不会发生任何变化。

附:这个呈现视图控制器的视图控制器使用自定义转换,但是在检查带有断点的代码后,我们认为这不是自定义转换委托未参与弹出框的呈现/关闭的原因。

【问题讨论】:

能把dismiss的代码加进去吗? 你有没有像progress indicator这样的ui任务在后面跑? 【参考方案1】:

打开视图

let vc = SettingsController()
vc.modalPresentationStyle = .overCurrentContext
let nav = UINavigationController(rootViewController: vc)
self.present(nav, animated: true, completion: nil)

关闭视图

self.dismiss(animated: true, completion: nil)

【讨论】:

【参考方案2】:

self ViewController 是否嵌入在导航控制器中?如果是这样,请尝试 self.navigationController.present(controller, animated: true, completion: nil)

【讨论】:

使引导弹出框在悬停而不是单击时出现/消失

】使引导弹出框在悬停而不是单击时出现/消失【英文标题】:MakeBootstrapPopoverAppear/DisappearonHoverinsteadofClick【发布时间】:2012-09-0220:20:52【问题描述】:我正在使用Bootstrap的Popover构建一个网站,但我不知道如何让弹出框出现在悬... 查看详情

关闭弹出框后表格视图没有更新?

】关闭弹出框后表格视图没有更新?【英文标题】:Tableviewisnotgettingupdatedafterdismissingthepopover?【发布时间】:2016-05-0915:11:07【问题描述】:由于这个问题,我头疼了一段时间。我详细说明了我的场景。我有一个表格视图,我可以... 查看详情

弹出框在状态栏中时的 NSPopover 瞬态

】弹出框在状态栏中时的NSPopover瞬态【英文标题】:NSPopovertransiencywhenpopoverisinstatusbar【发布时间】:2012-02-2116:17:32【问题描述】:我正在制作一个位于状态栏中的应用程序。单击状态项时,会弹出NSPopover。看起来像这样:问题... 查看详情

Bootstrap 3 弹出框在“响应”模式下不起作用

】Bootstrap3弹出框在“响应”模式下不起作用【英文标题】:Bootstrap3popoverdoesn\'tworkin"responsive"mode【发布时间】:2015-01-0205:38:27【问题描述】:这是我的JSFiddle完整代码示例。请注意如何将鼠标悬停在橙色道路字形图标上并... 查看详情

弹出框在第一次悬停在图标上时不起作用

】弹出框在第一次悬停在图标上时不起作用【英文标题】:Popoverdoesn\'tworkatfirsttimehoveronicon【发布时间】:2020-10-1621:13:17【问题描述】:以下是用于在悬停时加载弹出窗口的代码,它不会在第一次悬停时加载。它在第二次悬停时... 查看详情

为啥故事板弹出框在 Swift 中的设备上不起作用?

】为啥故事板弹出框在Swift中的设备上不起作用?【英文标题】:WhystoryboardpopovernotworkingondeviceinSwift?为什么故事板弹出框在Swift中的设备上不起作用?【发布时间】:2015-06-3010:43:13【问题描述】:我使用故事板制作了弹出框,它... 查看详情

弹出框关闭后如何在 transitionCoordinator 中安排新的演示文稿

】弹出框关闭后如何在transitionCoordinator中安排新的演示文稿【英文标题】:HowcanIscheduleanewpresentationintransitionCoordinatorafterpopoverdismissal【发布时间】:2014-11-0521:00:59【问题描述】:我正在更新我的应用程序以支持iOS8。在某些地方... 查看详情

为啥我的弹出框在 iPhone 6 Plus 上的 iOS 8.1 中崩溃? iOS 8 工作(实际上是 Xcode 6.0 到 6.1 的错误)

】为啥我的弹出框在iPhone6Plus上的iOS8.1中崩溃?iOS8工作(实际上是Xcode6.0到6.1的错误)【英文标题】:WhyismypopovercrashinginiOS8.1oniPhone6Plus?iOS8worked(actuallyXcode6.0to6.1bug)为什么我的弹出框在iPhone6Plus上的iOS8.1中崩溃?iOS8工作(实际上... 查看详情

移动端实现弹出框渐显和渐隐效果

在移动端想实现一个弹出框渐渐出现和消失的效果。由于用的是vue.js,所以写法有些独特,用变量控制是否显示类名。但是核心解决方法就是CSS3的animation属性应用还有CSS中的z-index应用,必须初始化定义让弹出框在最底部。还有就... 查看详情

触摸后关闭弹出框

】触摸后关闭弹出框【英文标题】:DismissPopoveraftertouch【发布时间】:2015-01-2920:33:14【问题描述】:我在我的MainViewController中创建了一个弹出框,当使用UIPopoverPresentationController触摸某个按钮并设置它的代表时,就像它在WWDC2014中... 查看详情

关闭弹出框后如何调用函数?

】关闭弹出框后如何调用函数?【英文标题】:Howtocallafunctionafterclosingapopover?【发布时间】:2020-06-0102:47:01【问题描述】:希望有人能给初学者一些指导,我的问题是这样的:我有一个弹出窗口我用mainViewController的segue打开那个... 查看详情

弹出框在 ForEach 中显示不准确的信息

】弹出框在ForEach中显示不准确的信息【英文标题】:PopoverdisplayinginaccurateinformationinsideForEach【发布时间】:2021-02-0700:52:28【问题描述】:我在NavigationView中有一个ForEach循环时遇到了问题。当我单击编辑按钮,然后单击每一行右... 查看详情

如何关闭 AirPrint Popover?

...发布时间】:2011-06-2203:08:11【问题描述】:我有一个单例弹出框,所以我一次只显示一个弹出框。当我执行共享弹出框并选择AirPrint时,共享弹出框正确消失,在其位置显示AirPrint弹出框。但如果我再次按下共享按钮,共享弹出... 查看详情

弹出框在 IPAD 模拟器中透明但在设备中不透明

】弹出框在IPAD模拟器中透明但在设备中不透明【英文标题】:PopovertransparentinIPADsimulatorbutnotindevice【发布时间】:2014-05-2607:01:00【问题描述】:我的应用中有一个弹出框,一个简单的弹出框,里面只有一个“文本视图”。我设法... 查看详情

iOS UITesting 如何关闭弹出框(iPad 弹出框不提醒样式)

】iOSUITesting如何关闭弹出框(iPad弹出框不提醒样式)【英文标题】:iOSUITestingHowtoDismissPopover(iPadPopoverNOTAlertStyle)【发布时间】:2017-01-2708:59:48【问题描述】:我有一个非常复杂的应用程序,其中包含大量视图和弹出框,用于快... 查看详情

在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框

】在didSelectRowAtIndexPath上关闭ios中的弹出框【英文标题】:dismisspopoveriniosondidSelectRowAtIndexPath【发布时间】:2016-09-0309:24:02【问题描述】:我有一个弹出框,它在导航栏按钮上弹出,并且该弹出框包含一个表格视图。ios中如何在ta... 查看详情

IOS UI popoverController 在设备方向更改后不会通过点击外部来关闭

...描述】:UIPopoverController遇到了一个奇怪的问题。在创建弹出框时,我们设置了passthroughvie 查看详情

在 iOS8 中检测弹出框关闭

】在iOS8中检测弹出框关闭【英文标题】:DetectpopoverdismissiniOS8【发布时间】:2014-10-2107:25:25【问题描述】:在我的iPad应用程序中,我将一个UIButton连接到另一个UIViewcontroller,只需拖动Storyboard并选择popover作为segue。一切正常,但... 查看详情