删除 applicationDidEnterBackground 中的 uialertview

Posted

技术标签:

【中文标题】删除 applicationDidEnterBackground 中的 uialertview【英文标题】:Remove uialertview in applicationDidEnterBackground 【发布时间】:2012-11-30 13:04:18 【问题描述】:

在我的应用程序中,当我按下主页按钮时,我将应用程序弹出到 rootviewcontroller 登录类。现在,在上一节课中,如果出现任何警报视图并且没有关闭它,我按下主页按钮,就会出现问题。下次我点击应用程序图标将其置于前台时,登录屏幕就在那里,但最重要的是,以前的课程警报视图也在那里。如何删除 applicationDidEnterBackground 上的 alertviews?

【问题讨论】:

重复***.com/questions/3105974/… 【参考方案1】:

有一个全局(AppDelegate 属性或单例),您只需将指针存储到显示的最后一个警报视图(并在完成后清除它)。如果指针不为零,则在 DidEnterBackground 或任何地方将其关闭。

【讨论】:

我自己使用了这个确切的解决方案 +1 @D_4_ni 为什么不呢?您一次不会显示多个警报,因此 ivar 始终引用当前警报(如果有)。 @rmaddy 是的,您可以一次显示多个 - 只有一个同时可见。如果警报可见并且弹出另一个警报,则后者将可见。当您关闭第二个警报时,第一个警报仍然存在。 @D_4_ni 是的。虽然我没说你不能。我从来没有找到任何理由一次超过一个。只要你从不这样做(像我一样),那么 Hot Lick 的答案就有效。 @rmaddy 你经常会遇到网络错误——以苹果的邮件应用为例。如果您设置了多个邮件帐户,并且您没有连接到任何可以访问 Internet 的网络,您将收到多个警报。您可以在我在对此问题的评论中链接的问题中找到一种适用于多个警报的方法(尽管我没有对其进行测试,但它应该可以工作)【参考方案2】:

你也可以使用 UIApplicationWillResignActiveNotification,UIApplicationWillEnterForegroundNotification 来解决这个问题

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(resignActive)
                                             name:UIApplicationWillResignActiveNotification
                                           object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(enterForeground)
                                             name:UIApplicationWillEnterForegroundNotification
                                           object:nil];

在 resignActive 方法中,您可以删除 alertviews...

【讨论】:

以上是关于删除 applicationDidEnterBackground 中的 uialertview的主要内容,如果未能解决你的问题,请参考以下文章

Linux_019_删除rm

gorm软删除和硬删除

开发环境Mac 中删除 Python ( 删除 Python 框架 | 删除 Python 应用程序 | 删除 Python 链接 )

linux按年份删除文件?

删除功能的实现(单个删除与批量删除)

vi-vim :删除撤销恢复删除复制删除