Swift IBUIBUTTON SIGABRT
我创建了一个IOS应用程序来发送电子邮件。我发现的问题是在IOS模拟器上测试我的应用程序。当我点击我的UIButton(IBOulet UIButton)时,我在AppDelegate.swift文件中收到SIGABRT Error突出显示类。下面没有显示错误代码。我还检查了视图控制器上的oulet连接,没有感叹号(“!”)或现有的重复项Swift IBUIBUTTON SIGABRT,swift,xcode,Swift,Xcode,我创建了一个IOS应用程序来发送电子邮件。我发现的问题是在IOS模拟器上测试我的应用程序。当我点击我的UIButton(IBOulet UIButton)时,我在AppDelegate.swift文件中收到SIGABRT Error突出显示类。下面没有显示错误代码。我还检查了视图控制器上的oulet连接,没有感叹号(“!”)或现有的重复项 @IBOutlet var Subject: UITextField! @IBOutlet var Body: UITextView! override
@IBOutlet var Subject: UITextField!
@IBOutlet var Body: UITextView!
override func viewDidLoad(){
super.viewDidLoad()
Subject.delegate = self
Body.delegate = self
}
@IBAction func SendEmail (_sender: Any)
{
let picker = MFMailComposeViewController()
picker.mailComposeDelegate = self
if let subjectText = Subject.text {
picker.setSubject(subjectText)
}
picker.setMessageBody(Body.text, isHTML: true)
present(picker, animated: true, completion: nil)
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
dismiss(animated: true, completion: nil)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
Body.text = textView.text
if text == "\n" {
textView.resignFirstResponder()
return false
}
return true
}
}
在演示
MFMailComposeViewController
之前,您没有调用MFMailComposeViewController.canSendMail()
。从文件:
您应该在尝试显示邮件合成界面之前调用此方法。如果返回false,则不能显示邮件合成界面
如果您没有设置用于在设备上发送邮件的电子邮件地址,则canSendMail()
将返回false
尝试:
您检查是否可以显示
MFMailComposer视图控制器
,如果不能,您将打开一个邮件
应用程序在您的类中没有UIButton。另外,这些出口应该是弱的。谢谢你的答复。在我的代码中,我需要设置MFMailComposeViewController.canSendMail()?
@IBAction func SendEmail (_sender: Any)
{
if(!MFMailComposeViewController.canSendMail()) {
if let url = URL(string: "mailto:" + yourEmailAddress) {
UIApplication.shared.openURL(url)
}
}
let picker = MFMailComposeViewController()
picker.mailComposeDelegate = self
if let subjectText = Subject.text {
picker.setSubject(subjectText)
}
picker.setMessageBody(Body.text, isHTML: true)
}