如何解决使用计时器关闭UIAlertController
如果未轻按“确定”按钮,则在几秒钟后关闭UIAlertController.Style.actionSheet
。
我尝试在显示actionSheet
后立即放置一个计时器,以调用一种方法将其关闭,但它不会关闭它。
这是我的代码:
func showActionSheet(){
let alert = UIAlertController(title: "Some Tile",message: "Some Message",preferredStyle: UIAlertController.Style.actionSheet)
alert.addAction(UIAlertAction(title: "OK",style: UIAlertAction.Style.cancel,handler: {
action in
self.closeSheetView()
}))
self.present(alert,animated: true,completion: nil)
timer = Timer.scheduledTimer(timeInterval: 2,target: self,selector: #selector(self.closeSheetView),userInfo: nil,repeats: false)
}
@objc func closeSheetView(){
self.dismiss(animated: true,completion: nil)
}
仅供参考-closeSheetView
方法似乎已被调用,但工作表视图没有关闭。
解决方法
我只是在我的项目中执行此操作而没有计时器,我使用了delay,也许它会为您服务...!
let alert = UIAlertController(title: "",message: "alert disappears after 5 seconds",preferredStyle: .alert)
self.present(alert,animated: true,completion: nil)
// here it work for 5 sec
let when = DispatchTime.now() + 5
DispatchQueue.main.asyncAfter(deadline: when){
// your code with delay
alert.dismiss(animated: true,completion: nil)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。