一段时间后如何显示 UIAlertView?

Posted

技术标签:

【中文标题】一段时间后如何显示 UIAlertView?【英文标题】:How to display UIAlertView after some time? 【发布时间】:2016-11-02 09:38:33 【问题描述】:

我试图在一段时间后显示 UIAlertView(比如在应用程序中执行某些操作后 5 分钟)。如果应用程序已关闭或在后台,我已经通知用户。但我想在应用程序运行时显示 UIAlertView。我不想一次又一次地刷新。三分钟后,我必须显示一些警报,例如您是否要保存?

【问题讨论】:

请使用UIAlertController 你不应该再显示任何UIAlertView,因为它已经被弃用了一段时间。 感谢您的 cmets。它工作正常。你能帮我找到 iTunes 音乐库路径吗? 【参考方案1】:

使用

self.perform(#selector(displayAlert), with: nil, afterDelay: 300)

其中 display alert 是显示警报的函数。

【讨论】:

【参考方案2】:

它对我有用:

self.timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: #selector(SONGS.displayAlert), userInfo: nil, repeats: false)
func displayAlert()

   self.message.dismissWithClickedButtonIndex(0,animated: true)

【讨论】:

【参考方案3】:

我认为具有自定义延迟的 UIAlertView 有另一种最佳方法是您可以根据需要安排带有 timeInterval 的本地通知。

【讨论】:

【参考方案4】:

最后,我找到了问题的答案: 我正在使用带有以下代码的点击手势:

func displayAlert()
    
        let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertControllerStyle.alert)

        // add an action (button)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))

        // show the alert
        self.present(alert, animated: true, completion: nil)
        self.timer = NSTimer.scheduledTimerWithTimeInterval(50.0, target: self, selector: #selector(SONGS.displayAlert), userInfo: nil, repeats: false)

        timer.invalidate()// stop the timer

如果你设置了repeats:true,如果你想停止计时器,它会每50秒显示一次警报,你可以在任何你想要的地方使用timer.invalidate()。 谢谢你

【讨论】:

以上是关于一段时间后如何显示 UIAlertView?的主要内容,如果未能解决你的问题,请参考以下文章

在 UIAlertView 中使用滑块?

如何从 UIAlertView 获取取消和调用用户操作

3 次启动 App 后显示 UIAlertview

如何取消并从UIAlertView调用用户操作

在第二次启动后显示 UIAlertView

为啥在我的视图被推送到导航堆栈之前我的 UIAlertView 没有在屏幕上消失?