Я пытаюсь создать пользовательский segue в первый раз. Желаемый результат - создать новый ViewController за предыдущим, а затем сделать предыдущий слайд, как если бы он был удален или удален с экрана. Моя проблема Я не мог этого сделать. Это нормально, если я создаю новый под предыдущим (в этом случае оба скользящие вверх, один из которых выталкивает другую вставку), но это не то, что я пытаюсь сделать. Единственное, что мне удалось сделать, это скользящий предыдущий, но есть черный фон под ним, а не новый вид ...iOS custom Segue - Эффект слайда
Вот мой код (оба прокрутки на этом, это не ожидалось результат):
override func perform() {
let viewControllerToRemove = self.sourceViewController.view as UIView!
let viewControllerToShow = self.destinationViewController.view as UIView!
let screenWidth = UIScreen.mainScreen().bounds.size.width
let screenHeight = UIScreen.mainScreen().bounds.size.height
viewControllerToShow.frame = CGRectMake(0.0, screenHeight, screenWidth, screenHeight)
let window = UIApplication.sharedApplication().keyWindow
window?.insertSubview(viewControllerToShow, aboveSubview: viewControllerToRemove)
UIView.animateWithDuration(0.6, animations: {() -> Void in
viewControllerToShow.frame = CGRectOffset(viewControllerToShow.frame, 0.0, -screenHeight)
viewControllerToRemove.frame = CGRectOffset(viewControllerToRemove.frame, 0.0, -screenHeight)
}) { (Finished) -> Void in
self.sourceViewController.presentViewController(self.destinationViewController as UIViewController,
animated: false,
completion: nil)
}
}
Любая помощь будет приветствоваться, заранее спасибо!
Я не знал об этой хитрости, и это абсолютно то, что я искал. Большое спасибо ! –
Он не используется часто, потому что это немного дольше, но вы имеете больше контроля над своей анимацией :) –
Я полностью согласен с вами. Я думаю, что я буду использовать его довольно часто в будущем, когда переходы по умолчанию не могут делать то, что я ищу –