私はUIButton経由でトリガーされるUIAlertViewを持っています。iOS電子メールアプリをUIAlertViewボタンで開く
UIAlertViewには、「電子メールを開く」と「キャンセル」という2つのボタンが表示されます。
"キャンセル"をクリックすると、UIAlertがビューから削除されます。ユーザーが「電子メールを開く」をタップすると、そのデバイスは既定の電子メールアプリケーションの作成画面を開き、電子メールアドレスは「送信者」セクションに既に表示されます。
スウィフト3.
感謝を使用!
私はそれがこのコードで作業してしまったimport UIKit
import Kingfisher
class SettingsViewController: UIViewController {
@IBAction func copyrightInfo(_ sender: Any) {
let alert = UIAlertController(title: "Copyright Info", message: "text", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "I understand", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
@IBAction func helpfeedbackAlert(_ sender: Any) {
let alertController = UIAlertController(title: "Help & Feedback", message: "text", preferredStyle: .alert)
let cancel = UIAlertAction(title: "Cancel", style: .destructive, handler: nil)
let openEmail = UIAlertAction(title: "Open Email", style: .default, handler: nil)
alertController.addAction(openEmail)
alertController.addAction(cancel)
self.present(alertController, animated: true, completion: nil)
}
@IBAction func clearCache(_ sender: Any) {
// SDImageCache.shared().clearMemory()
// SDImageCache.shared().clearDisk()
// Clear memory cache right away.
ImageCache.default.clearMemoryCache()
// Clear disk cache. This is an async operation.
ImageCache.default.clearDiskCache()
}
@IBAction func rateApp(_ sender: Any) {
if let url = URL(string: "https://www.google.com") {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:]) {
boolean in
// do something with the boolean
}
} else {
// Fallback on earlier versions
}
}
}
@IBAction func purchasePhotos(_ sender: Any) {
if let url = URL(string: "https://google.com") {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:]) {
boolean in
// do something with the boolean
}
} else {
// Fallback on earlier versions
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
ありがとう! UIAlertAction内のハンドラにMFMailComposeコードを追加する方法について少し混乱します。これは、UIButtonに接続されているとうまくいきますが、UIAlertActionのハンドラに置かれても機能しないようです。 – Miles
ボタンアクションで何をやっているのとまったく同じですが、クロージャー(ここでは「あなたのメールをここに送る...」というブロックと同じブロックにあります)。 –
今すぐご利用ください!ありがとうございました。私は「自己」を加えなければならなかった。 (メール、アニメーション:真)の行に表示されます。電子メール画面が開き、「キャンセル」または電子メールを送信すると、メールビューは消えません。 – Miles