2017-12-28 14 views
0

アラートを作成していますが、ユーザーが[OK]を押すと、アラートを解除できません。次のエラーが表示されます。UIAlertControllerでアラートを消すことはできません

2017-12-28 07:03:50.301947-0400 Prestamo[691:215874] API error: <_UIKBCompatInputView: 0x10249adc0; frame = (0 0; 0 0); layer = > returned 0 width, assuming UIViewNoIntrinsicMetric

私はインターネット上のあらゆる場所を検索していましたが、私を助けたものは見つかりませんでした。

override func viewDidAppear(_ animated: Bool) { 
    createAlert(title: "Licencia2", message: "En el momento no tienes una licencia válida!") 
} 

    func createAlert (title:String, message:String) { 
    let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert) 
    alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: {(action) in 
     alert.dismiss(animated: false, completion: nil) 
    })) 
    self.present(alert, animated: false, completion: nil) 
} 

すべてのアイデアは、あなたが警告コントローラを却下する必要はありません

+0

重複:https://stackoverflow.com/questions/24350784/how-to-現時点で警告を表示するuialertcontroller?rq = 1 –

+0

重複していません。私の警報は鳴るが、後はそれを閉じることはできない。 – Chris

+0

IMOの問題は、 'super.viewDidAppear(animated)'を呼び出さない 'viewDidAppear'にあります。 –

答えて

1

をいただければ幸いです。アクションハンドラが呼び出された後、自動的に閉じます。却下の行を削除するだけです。

let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert) 
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: {(action) in 

})) 
self.present(alert, animated: false, completion: nil) 
+0

あなたの答えをありがとう。しかし、私はまだ同じエラーがある/それはそれ自体を却下しません。私は何の違いもしなかった – Chris

0

this answer、あなたのコードとの違いに注意してください。 super.viewDidAppear(animated)が呼び出されていないため、問題が発生します。コードの下

は(これは私が使用されているすべてのです)(私はテストにそれをしました)問題もなく私の作品:

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 

     createAlert(title: "My test", message: "THis should work ok") 
    } 

    func createAlert (title:String, message:String) { 
     let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) 
     alert.addAction(UIAlertAction(title: "Ok", style: .default) { 
      action in 
      NSLog("it is working ok"); 
     }) 

     present(alert, animated: true) 
    } 
} 
+0

あなたの答えをありがとう。 XcodeはpresentViewControllerがpresentに名前が変更されたという赤いエラーを表示します。それが私がプレゼントしている理由です。問題はまだ残っている – Chris

関連する問題