PUSH ANOUTATION के बिना: स्विफ्ट यहां मेरे लिए काम की है।
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 से उस स्थान पर सेट करें जहाँ से आप PerformSegue कॉल करना चाहते हैं, जब आप बिना एनीमेशन के segue को पुश करना चाहते हैं और self.performSegue कॉल करने के बाद वापस सत्य पर सेट होते हैं। शुभकामनाएँ....
DispatchQueue.main.async {
self.isAnimationRequired = false
self.performSegue(withIdentifier: "showAllOrders", sender: self);
self.isAnimationRequired = true
}