【发布时间】:2010-08-14 09:53:59
【问题描述】:
在我正在开发的应用程序中,我希望在应用程序进入非活动/后台状态时关闭它们的操作表和警报视图。
我正在使用 UIApplicationWillResignActiveNotification 而不是 UIApplicationDidEnterBackgroundNotification,因为我希望代码与 iOS3.2 兼容。
-(void)applicationWillResignActive:(Notification *)notification{
if (self.actionSheet && self.actionSheet.visible){
NSLog(@" actionSheet is Visible");
[self.actionSheet dismissWithClickedButtonIndex:0 animated:NO];
}
}
在模拟器(iphone 3.2,iOS4)中对此进行测试,在 actionSheet 可见的情况下,我按下主页按钮,但没有收到“actionSheet is Visible”消息。然而,当我重新打开应用程序并使用主页按钮再次将其关闭时,我收到“actionSheet is Visible”消息。
这表明第一次没有设置 actionSheet 的可见属性。设置属性会不会有延迟?实际上我在显示actionSheet的方法中放了一条消息
[self.actionSheet showInView:self.parentViewController.tabBarController.view];
if (self.actionSheet.Visible) NsLog(@" action Sheet visible");
即使在这里我也没有收到消息。可见属性设置在哪里/何时?我在试图解除 actionSheet 时做错了什么?我在 SO 中看到了类似的非常好的和详细的解决方案,但它们似乎没有涵盖这个问题。任何帮助都感激不尽。
【问题讨论】:
-
为什么要在 iOS 3.2 上关闭操作表?当用户退出时,应用程序将被终止,所以没关系。你不妨使用
UIApplicationWillResignActiveNotification。 -
嗨,我同意我不需要对 iOS3.2 中的 actionSheet 做任何事情。但我的问题出在 iOS4 上。抱歉,我应该在上面的消息中写 iPhone3G 而不是 iPhone 3.2。
标签: iphone uiactionsheet dismiss