ANİMASYON OLMADAN İTME: Hızlı İşte benim için işe yarayan şey.
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)
}
}
}
Kullanım : Segue sınıfını film şeridinden resimde gösterildiği gibi ayarlayın. viewcontroller'dan isAnimationRequired değerini, performSegue'yu çağırmak istediğiniz yerden false olarak ayarlayın, animasyon olmadan segmenti itmek istediğinizde ve self.performSegue çağrıldıktan sonra tekrar true olarak ayarlayın. İyi şanslar....
DispatchQueue.main.async {
self.isAnimationRequired = false
self.performSegue(withIdentifier: "showAllOrders", sender: self);
self.isAnimationRequired = true
}