gpt4 book ai didi

ios - 禁用 UIPageViewController 弹跳 - Swift

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:06 25 4
gpt4 key购买 nike

<分区>

我一直在制作一个在 UIViewControllers 之间滚动的示例应用程序,但关键是我想在滚动结束时以及返回到第一个 UIViewController< 时禁用弹跳效果

这是我的代码:

class PageViewController: UIPageViewController,UIPageViewControllerDataSource, UIPageViewControllerDelegate{

var index = 0
var identifiers: NSArray = ["FirstNavigationController", "SecondNavigationController"]
override func viewDidLoad() {

self.dataSource = self
self.delegate = self

let startingViewController = self.viewControllerAtIndex(self.index)

let viewControllers: NSArray = [startingViewController]
self.setViewControllers(viewControllers as [AnyObject], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
}

func viewControllerAtIndex(index: Int) -> UINavigationController! {

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
//first view controller = firstViewControllers navigation controller
if index == 0 {

return storyBoard.instantiateViewControllerWithIdentifier("FirstNavigationController") as! UINavigationController

}

//second view controller = secondViewController's navigation controller
if index == 1 {

return storyBoard.instantiateViewControllerWithIdentifier("SecondNavigationController") as! UINavigationController
}

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

let identifier = viewController.restorationIdentifier
let index = self.identifiers.indexOfObject(identifier!)

//if the index is the end of the array, return nil since we dont want a view controller after the last one
if index == identifiers.count - 1 {

return nil
}

//increment the index to get the viewController after the current index
self.index = self.index + 1
return self.viewControllerAtIndex(self.index)

}

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

let identifier = viewController.restorationIdentifier
let index = self.identifiers.indexOfObject(identifier!)

//if the index is 0, return nil since we dont want a view controller before the first one
if index == 0 {

return nil
}

//decrement the index to get the viewController before the current one
self.index = self.index - 1
return self.viewControllerAtIndex(self.index)

}

}

看这里:

enter image description here

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