(Swift)需要逐步了解如何在我的视图控制器之间滑动

时间:2016-07-11 04:32:47

标签: ios swift xcode uiscrollview uipageviewcontroller

我尝试了很多不同的博客和视频教程,所有这些教程都很复杂。我无法想象这种技术会像它看起来那么难。这些是我的视图控制器: enter image description here

我想要的只是签名后,我的应用程序转到中间视图控制器(家庭控制器)。然后,我希望能够向左和向右滑动到相邻的视图控制器。我在UIPageViewControllers和UIScrollViews上尝试了很多教程并没有成功。我已经有了这些视图控制器,我只需要一种简单的方法在它们之间滑动。我觉得这应该很简单,但我观看的每个视频都是关于如何使用UIPageViewController在应用程序中制作教程。我只需要通过滑动来导航这三个视图控制器。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果您想使用UISwipeGesture实现此目的,那么您可以尝试使用以下代码...

在这里,您只需要将viewDidLoad()方法中的动画提供给self.view,这样就可以将一个控制器从另一个控制器中滑动。

在中间视图控制器中,您需要检查从哪个控制器推送到MiddleController,之后放置左或右动画取决于您的控制器。

override func viewDidLoad()
{
    super.viewDidLoad()

    self.imgSlideInFromLeft(self.view)

    let swipeGesture:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipeViewFromLeft:"))
    swipeGesture.direction = .Right
    swipeGesture.numberOfTouchesRequired = 1
    swipeGesture.delegate = self
    self.view .addGestureRecognizer(swipeGesture)
}

func imgSlideInFromLeft(view: UIView)
{
    let transition:CATransition = CATransition()
    transition.duration = 0
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromRight
    transition.delegate = self
    view.layer .addAnimation(transition, forKey: "transition")
}

func swipeViewFromLeft(recognizer : UISwipeGestureRecognizer)
{
    let followingController = FollowingController()
    self.navigationController!.pushViewController(followingController, animated: false)
}

答案 1 :(得分:0)

您可以点击以下链接。

PageScroller_swift

只需一个更改获取您想要的页面控制器。在你的情况下,你想直接跳到1 - >然后,主视图控制器从索引1获取视图控制器。

self.setViewControllers([getViewControllerAtIndex(1)] as [UIViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)