【问题标题】:Swift - Reload UIPageViewController with new information in viewDidAppearSwift - 在 vi​​ewDidAppear 中使用新信息重新加载 UIPageViewController
【发布时间】:2015-02-04 21:51:38
【问题描述】:

如何在viewDidAppear重新加载UIPageViewController?

在那里,我从 CoreData 刷新信息,并且我想在视图出现时更新值。

我尝试使用函数reloadInputViews(),但只有当您开始打开页面时才会成功更新信息。

【问题讨论】:

  • 您的视图控制器中的“UIPageViewController”是“IBOutlet”吗?你的“UIPageViewController”是子类吗?
  • 您需要使用setViewControllers:direction:animated:completion: 函数为您要重新加载的页面加载视图控制器。
  • 介意帮助我,我也有类似的问题。 stackoverflow.com/questions/29764415/…

标签: ios swift reload uipageviewcontroller viewdidappear


【解决方案1】:

如果你想在 UIPageViewController 中重新加载 ViewControllers,只需重新设置它们:

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

如果你要从 viewController 中更新你的 viewController,你必须这样调用它:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    let viewControllers: [UIViewControllers] = [UIViewController()]
    if let pageViewController = parentViewController as? UIPageViewController {
        pageViewController.setViewControllers(viewControllers, direction: .Forward, animated: true, completion: nil)
    }
}

【讨论】:

  • override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) self.setViewControllers(pageViewController, direction: .Forward, animated: true, completion: {}) } 打印错误ViewController does not have a member named setViewControllers
  • 这个if 永远不会执行
  • 请帮帮我,我也有类似的stackoverflow.com/questions/29764415/…
猜你喜欢
  • 2018-12-24
  • 2014-12-10
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多