Первое, что я пытался есть, чтобы создать ВЕДЕНИЯ UIAlertController
для обработки, чтобы установить анимацию в dismiss(animated:completion:)
для false
в обработчике (код, который будет выполняться после того, как вы нажмете кнопку OK) в 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 ситуациях я обнаружил, что отключение кнопки является хорошим способом обхода, я не уверен, что это помогло бы в вашем случае без дополнительной информации. –