Ich habe ein benutzerdefiniertes Segment erstellt, das die aktuelle Ansicht nach links verschiebt und gleichzeitig die nächste Ansicht von rechts verschiebt. Wenn ich es auf dem ersten Weg benutze, funktioniert es perfekt, aber wenn es auf dem nächsten Weg verwendet wird, bewegt sich nur die Zielansicht. Der Code für die Segue sieht wie folgt aus:Schnelles benutzerdefiniertes Segment funktioniert nicht in aufeinanderfolgenden Segmenten
class CustomSlideSegue: UIStoryboardSegue {
override func perform() {
let firstVCView = self.sourceViewController.view as UIView!
let secondVCView = self.destinationViewController.view as UIView!
let screenWidth = UIScreen.mainScreen().bounds.size.width
let screenHeight = UIScreen.mainScreen().bounds.size.height
secondVCView.frame = CGRectMake(screenWidth, 0, screenWidth, screenHeight)
let window = UIApplication.sharedApplication().keyWindow
window?.insertSubview(secondVCView, aboveSubview: firstVCView)
UIView.animateWithDuration(0.6, animations: {() -> Void in
firstVCView.transform = CGAffineTransformMakeTranslation(-screenWidth, 0)
secondVCView.transform = CGAffineTransformMakeTranslation(-screenWidth, 0)
}) { (Finished) -> Void in
self.sourceViewController.presentViewController(self.destinationViewController as UIViewController, animated: false, completion: nil)
}
}
}
Und hier ist der Code aus der View-Controller-Taste Aktion-Methode, wo ich die Segue starten:
performSegueWithIdentifier("customSlideSegue", sender: self)
Hier ist ein Video der segues zeigt:
Kann jemand das Problem? Oder wie sollte ich über das Debugging gehen? Dankbar für die Antworten!
können Sie mehr Code zeigen, wo Sie das benutzerdefinierte Segment tatsächlich verwenden? –
Hinzugefügt zu der Frage. Ich benutze den performSegueWithIdentifier ("customSlideSegue", sender: self) in der Methode, die aufgerufen wird, dann wird die Schaltfläche gedrückt. –
Ich habe natürlich verschiedene IDs auf beiden Segmenten :) –