Как мне сбросить симулятор в Xcode 9

PUSH БЕЗ АНИМАЦИИ: 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)
        }
    }
}

Использование: Установите класс segue из раскадровки, как показано на рисунке. установите для isAnimationRequired из вашего контроллера представления значение false, из которого вы хотите вызвать performSegue, когда вы хотите нажимать segue без анимации и возвращаться к true после вызова self.performSegue. Удачи ....

DispatchQueue.main.async {
                self.isAnimationRequired = false
                self.performSegue(withIdentifier: "showAllOrders", sender: self);
                self.isAnimationRequired = true
            }

13
задан Gandalf458 25 January 2018 в 15:37
поделиться