Ios Swift:第二次打开消息控制器
每当用户按下徽标时,计数器将从0计数到3。在这3秒钟之后,我向用户呈现消息控制器:Ios Swift:第二次打开消息控制器,ios,swift,sms,message,Ios,Swift,Sms,Message,每当用户按下徽标时,计数器将从0计数到3。在这3秒钟之后,我向用户呈现消息控制器: if MFMessageComposeViewController.canSendText() == true { print(self.urgentNumber) let recipients:[String] = ["\(self.urgentNumber as! String)"] self.messageControl
if MFMessageComposeViewController.canSendText() == true {
print(self.urgentNumber)
let recipients:[String] = ["\(self.urgentNumber as! String)"]
self.messageController.messageComposeDelegate = self as?
MFMessageComposeViewControllerDelegate
self.messageController.recipients = recipients
self.messageController.body = "Hey,\nmy longitude: \
(self.userLocation.coordinate.longitude) \nmy latitude: \
(self.userLocation.coordinate.latitude)"
self.present(self.messageController, animated: true,
completion: nil)
} else {
//handle text messaging not available
}
当用户按下cancel或send(取消)或send(发送)消息时,我检测到以下情况:
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
messageController.dismiss(animated: true, completion: nil)
}
在此,用户应等待20秒以发送另一条消息:
DispatchQueue.main.asyncAfter(deadline: .now() + 20, execute: {
self.reSetAnimations()
})
问题是,当用户第二次按下徽标时(在等待20秒以使其能够再次按下后),消息控制器不会再次打开
知道为什么吗?尝试创建一个新的
MFMessageComposeViewController实例,而不是重复使用旧的实例。重置动画做什么?除了删除用户按下3秒时运行的一些动画外,别无他法。另外,隐藏一个覆盖页面20秒的视图,以防止用户与此页面交互。那么,当计时器计数到3秒时,您的timerDidEnd()
会在哪里调用代码来再次显示MFMessageComposeViewController
?timerDidEnd()?您是否尝试放置断点?我在TimerDend()之外声明让messageController=MFMessageComposeViewController()。当我在方法中声明它时,它解决了我的问题。