我正在尝试显示X值不活动后出现的密码屏幕。我在根视图控制器上使用presentViewController:animated:completion:它按预期工作,除非已经显示了一个弹出窗口。从条形按钮项显示的弹出框出现在显示的密码屏幕上。
在呈现视图控制器时,有没有办法解除或隐藏所有可见的弹出窗口?
答案 0 :(得分:1)
你有对popover的引用吗?然后你可以打电话
[popover dismissPopoverAnimated:NO];
当你去购买密码叠加时。
修改强>
循环浏览子视图,看看你是否可以使用弹出窗口。我真的建议尝试找一些其他的做事方式,因为这只是icky。但它应该工作(未经测试)。
for (UIView* view in self.view.subviews) {
if([view respondsToSelector:@selector(dismissPopoverAnimated:)]){
[(UIPopoverController*)view dismissPopoverAnimated:NO];
}
}
答案 1 :(得分:1)
在第一个窗口上创建并添加第二个窗口。在第二个窗口中显示密码屏幕。这将允许它出现在第一个窗口的任何和所有视图上。当您关闭密码屏幕时,请务必删除新窗口并再次输入第一个密钥。
答案 2 :(得分:1)
NSNotification
是解决此问题的好工具。让所有显示弹出窗口的视图或控制器都会侦听名为WillPresentPasscodeScreen
的通知,并实现一种方法,在通知进入时解除弹出窗口。然后,在您出示密码VC之前,发布一个{{ 1}}通知 - 无论你在应用程序中的哪个位置,都不会有弹出窗口。