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