Swift: 第二次打开消息控制器
Swift: Open message controller for second time
每当用户按下徽标时,计数器就会从 0 计数到 3。这 3 秒后,我将向用户显示消息控制器:
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
}
当用户按下取消或发送消息时,我在 :
中检测到了这一点
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
的新实例,而不是重复使用旧实例。
每当用户按下徽标时,计数器就会从 0 计数到 3。这 3 秒后,我将向用户显示消息控制器:
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
}
当用户按下取消或发送消息时,我在 :
中检测到了这一点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
的新实例,而不是重复使用旧实例。