Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式更新UIPageController的UIPageControl当前索引_Ios_Swift_Uikit - Fatal编程技术网

Ios 以编程方式更新UIPageController的UIPageControl当前索引

Ios 以编程方式更新UIPageController的UIPageControl当前索引,ios,swift,uikit,Ios,Swift,Uikit,我有一个具有UIPageViewController属性的ViewController: private var pageController: UIPageViewController! 使用滑动手势导航功能正常,内部UIPageControl更新正确 问题是,在第一个UIViewController中,我有一个按钮可以跳到最后一个UIViewController。这可以正常工作,但UIPageControll没有像滑动手势一样更新 下面是我执行导航到最后一个UIViewController

我有一个具有UIPageViewController属性的ViewController:

private var pageController: UIPageViewController!
使用滑动手势导航功能正常,内部UIPageControl更新正确

问题是,在第一个UIViewController中,我有一个按钮可以跳到最后一个UIViewController。这可以正常工作,但UIPageControll没有像滑动手势一样更新

下面是我执行导航到最后一个UIViewController的代码:

@IBAction func pressSkip(_ sender: UIButton) {
        if let parent = self.parent as? UIPageViewController {
            parent.setViewControllers([pages[3]], direction: .forward, animated: true, completion: nil)
        }
    }

有没有办法正确访问UIPageViewController的UIPageControl并更改索引?

最后,我决定创建一个UIPageControl并隐藏UIPageController内部的UIPageControl。因此,我可以毫无问题地处理pagecontrol当前页面:

我设置了pagecontroller孩子的清晰背景色,以保持UIPageControl可见

@IBAction func pressShowMore(_ sender: UIButton) {
        if let parent = self.parent as? UIPageViewController {
            parent.setViewControllers([pages[1]], direction: .forward, animated: true, completion: nil)
            parentDelegate?.pageControl.currentPage = 1
        }
    }

    @IBAction func pressSkip(_ sender: UIButton) {
        if let parent = self.parent as? UIPageViewController {
            parent.setViewControllers([pages[3]], direction: .forward, animated: true, completion: nil)
            parentDelegate?.pageControl.currentPage = 3
        }
    }

从第一个UIViewcontroller开始,我可以使用委派访问父UIPageControl。

不,这是唯一的方法。我的意思是,当我以编程方式导航到最后一个UIViewcontroller时,我想更改UIPageControl的索引,哦,那么您必须为UIPageViewController实现数据源。请参阅:
func presentationIndex(用于:UIPageViewController)->Int
此方法