Ich richte Nachricht an Telefonnummern in meinem Projekt und funktioniert gut. Ich klicke auf die button
, iPhone sendende Nachricht Seite erscheint, wenn ich eine Nachricht sende oder klicke Cancel
, es geht zurück. Wenn ich jetzt zum zweiten Mal auf die Schaltfläche klicke, passiert nichts, wenn ich zum dritten Mal klicke, stürzt die App ab. Die Info in der Konsole sagte mir, dass ich nach dem ScreenUpdates ändern sollte: NEIN zu Use afterScreenUpdates:YES
. Also habe ich in meinem Code controller.view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
hinzugefügt, aber es hat nicht funktioniert. Was muss sich hier ändern?Wieso kommt es beim dritten Klick zu einer Fehlermeldung?
in der Konsole:
Cannot snapshot view (<UIKeyboardImpl: 0x101a224f0; frame = (0 0; 320 216); layer = <CALayer: 0x170622880>>) with afterScreenUpdates:NO, because the view is not in a window. Use afterScreenUpdates:YES.
Mein Code:
import UIKit
import MessageUI
class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {
let messageVC = MFMessageComposeViewController()
var phoneNumber = ""
override func viewDidLoad() {
super.viewDidLoad()
messageVC.messageComposeDelegate = self
}
@IBAction func sendMessageTapped(_ sender: AnyObject) {
let recipient = self.phoneNumber // I get self.phonenumber from other code, no problem.
messageVC.body = ""
messageVC.recipients = [recipient]
self.present(messageVC, animated: true, completion: nil)
}
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
// I added this line to fix, didn't work.
// controller.view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
switch result.rawValue {
case 0 :
print("Sending Message cancelled")
messageVC.dismiss(animated: true, completion: nil)
case 1:
print("Message sent")
messageVC.dismiss(animated: true, completion: nil)
case 2:
print("Sending message failed")
messageVC.dismiss(animated: true, completion: nil)
default:
break
}
}
}
Scheint mehr ein Kommentar als eine Antwort. Aber ein * guter * Kommentar. :) –
Das zeigt nur, wie wenig ich SO verwende;) – dlbuckley
@dlbuckley Gut geraten! Ich habe die MFMessageComposeViewController-Instanz erstellt, als ich auf die Schaltfläche geklickt habe. Jetzt funktioniert es gut! Vielen Dank. – developermike