2015-10-07 6 views
1

Я хочу перемещаться по True ViewControllers с анимациями, например, в PageViewController, если вы выбираете стиль прокрутки. Поэтому я хочу использовать их, используя левую/правую прокрутку. Как это сделать без UIPageViewController. Есть ли способ разработать класс повторного использования, который можно использовать в качестве основного стиля перехода в моем приложении?Custom ViewController Transition, как UIPageViewController

Я признателен за любую помощь

ответ

0

Ну, мне удалось сделать это с помощью пользовательского раскадровки перетекает Вот код:

Пользовательские переход:

import UIKit 
class CustomScrollPagingSegue: 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.0, screenWidth, screenHeight) 
    let window = UIApplication.sharedApplication().keyWindow 
    window?.insertSubview(secondVCView, aboveSubview: firstVCView) 
    UIView.animateWithDuration(0.5, animations: {() -> Void in 
     firstVCView.frame = CGRectOffset(firstVCView.frame, -screenWidth, 0.0) 
     secondVCView.frame = CGRectOffset(secondVCView.frame, -screenWidth, 0.0) 
     }) { (Finished) -> Void in 
     self.sourceViewController.presentViewController(self.destinationViewController as UIViewController, animated: false, completion: nil) 
    } 


    } 
} 

и пользовательских разматывает SEGUE

import UIKit 

class CustomScrollPagingSegueUnwind: UIStoryboardSegue { 
override func perform() { 
    // Assign the source and destination views to local variables. 
    let secondVCView = self.sourceViewController.view as UIView! 
    let firstVCView = self.destinationViewController.view as UIView! 

    let screenWidth = UIScreen.mainScreen().bounds.size.width 

    let window = UIApplication.sharedApplication().keyWindow 
    window?.insertSubview(firstVCView, aboveSubview: secondVCView) 

    // Animate the transition. 
    UIView.animateWithDuration(0.5, animations: {() -> Void in 
     firstVCView.frame = CGRectOffset(firstVCView.frame, screenWidth, 0.0) 
     secondVCView.frame = CGRectOffset(secondVCView.frame, screenWidth, 0.0) 

     }) { (Finished) -> Void in 

      self.sourceViewController.dismissViewControllerAnimated(false, completion: nil) 
    } 
    } 
} 

Я думаю, имея 100 % того же результата возможен с интерактивными переходами, но я не знаю, как их реализовать.

1

Если вы хотите такой же эффект, как UIPageViewController вы должны просто использовать его. Вот для чего это. Если у вас есть настоящая причина не использовать его, вы можете использовать любой из многих руководств для реализации контроллера контейнера.

Смежные вопросы