首先是我的嘗試是,創建一個UIAlertController
的參考來處理在dismiss(animated:completion:)
動畫設置爲false
在處理程序的UIAlertAction
的(這將按下確定按鈕後要執行的代碼) :
import UIKit
class ViewController: UIViewController {
var alert: UIAlertController!
@IBAction func alertViewButtonPressed(_ sender: UIButton) {
alert = UIAlertController(title: "", message: "Hello", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default) { _ in
// this code executes after you hit the OK button
self.alert.dismiss(animated: false, completion: nil)
}
alert.addAction(action)
self.present(alert, animated: true)
}
}
不幸的是,動畫仍然存在:
對我而言,唯一的辦法就是override
dismiss(animated:completion:)
方法,並將super
調用中的動畫標誌設置爲false
。您也不需要向處理程序添加代碼,也沒有理由爲該解決方案創建參考。 (注:現在每個呈現視圖控制器獲取該視圖控制器沒有動畫駁回):
import UIKit
class ViewController: UIViewController {
@IBAction func alertViewButtonPressed(_ sender: UIButton) {
let alert = UIAlertController(title: "", message: "Hello", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: nil)
alert.addAction(action)
self.present(alert, animated: true)
}
override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
// view controller which was presented modally by the view controller gets dismissed now without animation
super.dismiss(animated: false, completion: completion)
}
}
現在警報視圖被解僱而無需動畫:
可以添加代碼,請 – Ram
代碼請sims像一個簡單的修復 –
在simliar情況下,我發現禁用該按鈕是一個很好的解決方法,我不知道這將有助於你的情況沒有更多的信息,雖然。 –