UIPageControl 不更新即使值已更改

UIPageControl Not Updating Even the value changed

所以我有 MainViewControllerContainerView 嵌入了 PageViewController 这个 PageViewController 有 2 个页面,我添加了containerView 顶部的 PageControl,但是尝试使用方法

更新页面
 PageControl.currentPage = status.page

不工作。另外,我最初打印了值,滑动后,当前页面的值发生了变化,但 UI 没有更新。

这是我到目前为止所做的。

MainViewController

   struct status {
    static var viewstat = ""
    static var bottomContainerHeightCon: CGFloat!
    static var containerHeightCon: CGFloat!
    static var bhbefore: CGFloat!
    static var chbefore: CGFloat!
    static var buttonstat = "false"
    static var page: Int = 0
}
   @IBOutlet var pageControl: UIPageControl!


    override func viewDidLoad() {
    super.viewDidLoad()

    }


  func changePage() {

    view.layoutIfNeeded()
}


   func configurePageControl() {
    // The total number of pages that are available is based on how many available colors we have.

    self.pageControl.numberOfPages = 2
    self.pageControl.currentPage = status.page
    self.pageControl.tintColor = UIColor.gray
    self.pageControl.pageIndicatorTintColor = UIColor.gray
    self.pageControl.currentPageIndicatorTintColor = UIColor.black   
}

PageViewController

  override func viewDidLoad() {
    super.viewDidLoad()

    self.delegate = self
    self.dataSource = self
     configurePageControl()
    let page1: UIViewController! = storyboard?.instantiateViewController(withIdentifier: "QuestionsPage");
    let page2: UIViewController! = storyboard?.instantiateViewController(withIdentifier: "NeedPaymentPage");
    pages.append(page1)
    pages.append(page2)
    setViewControllers([page1], direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil)


}


 func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {


    let pageContentViewController = pageViewController.viewControllers![0]
    self.pageControl.currentPage = pages.index(of: pageContentViewController)!


  let currentIndex = pages.index(of: previousViewControllers.first!)!
  NeedDetailsController.status.page = currentIndex
    NeedController.changePage()


}

问题是这些行:

NeedDetailsController.status.page = currentIndex
NeedController.changePage()

您不能这样设置值。尝试在 didFinishAnimating 方法中添加此 if 块,然后使用 parentController 访问属性。

if let parentController = self.parent as? NeedDetailsController {
    print("didFinishAnimating is getting called.")
}