gpt4 book ai didi

ios - 为什么 PageViewController 中的代码出现两次?

转载 作者:行者123 更新时间:2023-11-28 13:19:18 24 4
gpt4 key购买 nike

我正在 createViewController() 方法中创建 pageViewController。我已经定义了 UIPageViewController 的一个属性,它是 self.pageController。由于重复的代码块,当这些页面打开时,当我们离开滚动页面时,它也会显示在 View 后面。

func createPageController()
{
var deviceFrame:CGSize = UIScreen.mainScreen().bounds.size
self.pageController = UIPageViewController(transitionStyle: UIPageViewControllerTransitionStyle.Scroll,
navigationOrientation: UIPageViewControllerNavigationOrientation.Horizontal,
options: [UIPageViewControllerOptionInterPageSpacingKey : 0])

self.pageController!.view.frame = CGRectMake(0,108, deviceFrame.width, deviceFrame.height-110)
self.dailyChallengeViewController = UIStoryboard(name: "Main_iPhone", bundle: nil).instantiateViewControllerWithIdentifier("DailyChallengeViewController") as? DailyChallengeViewController
self.winnersViewController = UIStoryboard(name: "Main_iPhone", bundle: nil).instantiateViewControllerWithIdentifier("WinnersViewController") as? WinnersViewController

// All the below code will repeat 1 more time
self.winnersViewController!.view.frame = self.pageController!.view.frame
self.dailyChallengeViewController!.view.frame = self.pageController!.view.frame

self.dailyChallengeViewController!.index = 0
self.winnersViewController!.index = 1

self.viewControllers = [self.dailyChallengeViewController!,self.winnersViewController!]
self.pageController!.setViewControllers([self.dailyChallengeViewController!],
direction:UIPageViewControllerNavigationDirection.Forward,
animated:false,
completion:nil)
self.addChildViewController(self.pageController!)

self.view.addSubview(self.pageController!.view)

self.pageController!.dataSource = self
self.pageController!.delegate = self

self.pageController!.didMoveToParentViewController(self)
}

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

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

最佳答案

据我所知,很多人都有这个问题。

这是因为 viewControllerBeforeViewControllerviewControllerAfterViewController

建议使用 willTransitionToViewControllers 与上述其他两种方法一起获取 PVC 的当前索引。

换句话说,如果您希望在索引 x 处发生特定的事情,请在 willTransitionToViewControllers 委托(delegate)方法中编写一个 if 语句。

希望对你有帮助!

PageViewController delegate functions called twice

关于ios - 为什么 PageViewController 中的代码出现两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27152997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com