ผลักโดยไม่มีภาพเคลื่อนไหว: Swift นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน
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)
}
}
}
การใช้งาน : ตั้งค่าคลาสต่อจากสตอรี่บอร์ดดังที่แสดงในภาพ ตั้งค่า isAnimationRequired จาก viewcontroller ของคุณเป็น false จากที่ที่คุณต้องการเรียก performSegue เมื่อคุณต้องการพุชการทำต่อโดยไม่มีภาพเคลื่อนไหวและตั้งค่ากลับเป็นจริงหลังจากเรียก self.performSegue ขอให้โชคดี ....
DispatchQueue.main.async {
self.isAnimationRequired = false
self.performSegue(withIdentifier: "showAllOrders", sender: self);
self.isAnimationRequired = true
}