PUSH KHÔNG CÓ ANIMATION: Swift Đây là những gì đã làm việc cho tôi.
import ObjectiveC
private var AssociatedObjectHandle: UInt8 = 0
extension UIViewController {
var isAnimationRequired:Bool {
get {
return (objc_getAssociatedObject(self, &AssociatedObjectHandle) as? Bool) ?? true
}
set {
objc_setAssociatedObject(self, &AssociatedObjectHandle, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
-------------------- SilencePushSegue --------------------
class SilencePushSegue: UIStoryboardSegue {
override func perform() {
if self.source.isAnimationRequired == false {
self.source.navigationController?.pushViewController(self.destination, animated: false)
}else{
self.source.navigationController?.pushViewController(self.destination, animated: true)
}
}
}
Cách sử dụng : Đặt lớp segue từ bảng phân cảnh như trong hình. đặt isAnimationRequired từ bộ điều khiển xem của bạn thành false từ nơi bạn muốn gọi performanceSegue, khi bạn muốn đẩy segue mà không có hoạt ảnh và đặt lại thành true sau khi gọi self.performSegue. May mắn nhất....
DispatchQueue.main.async {
self.isAnimationRequired = false
self.performSegue(withIdentifier: "showAllOrders", sender: self);
self.isAnimationRequired = true
}