在我正在开发的应用程序中,我有操作表和警报视图,当应用程序进入非活动/后台状态时,我希望将其关闭。
我正在使用 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 的 visible 属性。设置属性会不会有延迟?事实上,我在显示 actionSheet 的方法中添加了一条消息
[self.actionSheet showInView:self.parentViewController.tabBarController.view];
if (self.actionSheet.Visible) NsLog(@" action Sheet visible");
即使在这里我也没有收到消息。可见属性设置在哪里/何时?我在试图解除 actionSheet 时做错了什么?我在 SO 中看到了类似的非常好的和详细的解决方案,但它们似乎没有涵盖这个问题。任何帮助都感激不尽。