 private var associatedCompletionHandler: ((UIViewController) -> ())?
 
 public extension UIViewController {
-
+	
 	private static var isPrepareForSegueSwizzled: Bool {
 		get {
 			return objc_getAssociatedObject(self, &associatedSwizzleState) as? Bool ?? false

			self.swizzledPrepare(for: segue, sender: self)
		}
	}

}

			let swizzledMethod = class_getInstanceMethod(UIViewController.self, swizzledSelector)
			
			method_exchangeImplementations(originalMethod, swizzledMethod)
			
			UIViewController.isPrepareForSegueSwizzled = true
		}
		
		self.performingSegueIdentifier = identifier
		self.performingSegueCompletionHandler = { viewController in
			(viewController as? T).map { prepareHandler?($0) }
		}
		
		self.performSegue(withIdentifier: identifier, sender: self)
	}
	
	@objc private func swizzledPrepare(for segue: UIStoryboardSegue, sender: Any?) {
		if let performingSegueIdentifier = self.performingSegueIdentifier,
			segue.identifier == performingSegueIdentifier
		{
			self.performingSegueIdentifier = nil
			
