滑动页面视图控制器时,段控制器的选定段应更改

时间:2015-12-28 10:20:41

标签: ios swift uipageviewcontroller uisegmentedcontrol

我正在设计一个段控件,我已经实现了一个页面视图控制器来在视图之间滑动。此外,我还实现了段操作功能,以便在用户触摸任何特定段时在视图之间切换。

但我现在面临的问题是,每当我通过点击所选片段的片段来选择特定片段时,无论何时我在视图之间滑动,我都无法更改所选索引。

所以我不能每次都得到加载的视图的索引?或者对我的问题提出任何建议。

我已经实现了以下功能。

 func viewControllerAtIndex(index : Int) -> UIViewController/
    {

    }
    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
    {

    }


    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController?
    {


    }

    @IBAction func sendsegmentcontrollerIndex(sender: AnyObject)

    {

  //codes for changing the present view controller on segment selection

    }

那么我现在必须做些什么才能获得预期的结果呢? 我甚至试图向我的页面视图控制器添加滑动手势,但是徒劳无功。

2 个答案:

答案 0 :(得分:0)

您应该覆盖此委托:pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)。也许你可以这样实现:

func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
    if pageViewController.viewControllers?.first?.isKindOfClass([yourClass]) {
        //self.changeIndex()
    }
}

在此委托中,您将检测页面移动的内容。并且您会将细分设置为与此viewcontroller索引匹配。

答案 1 :(得分:0)

func pageViewController(pageViewController: UIPageViewController,
        didFinishAnimating finished: Bool,
        previousViewControllers: [UIViewController],
        transitionCompleted completed: Bool)
    {
        let pageContentViewController = pageViewController.viewControllers![0] as! ContentViewController
        let index = pageContentViewController.pageIndex
        print(index)
        seg.selectedSegmentIndex = index



    }