答案 0 :(得分:2)
首先创建一个名为PageViewController的类,在storyboard中拖动UIPageViewController
。现在让我们从属性检查器中将其设置为初始视图控制器。同样来自身份检查员将PageViewController设置为Class。
调用您的三个视图控制器,例如StepZero,StepOne,StepTwo还在故事板中为它们提供标识符。
现在深入编码,因此在PageViewController中应该是UIPageVIewController
的子类:
import UIKit
class PageViewController : UIPageViewController,UIPageViewControllerDataSource {
var selectedIndex = 1
override func viewDidLoad() {
dataSource = self
view.backgroundColor = UIColor.darkGrayColor()
// This is the starting point. Start with step zero.
setViewControllers([getStepOne()], direction: .Forward, animated: false, completion: nil)
}
func getStepZero() -> StepZero {
return storyboard!.instantiateViewControllerWithIdentifier("StepZero") as! StepZero
}
func getStepOne() -> StepOne {
return storyboard!.instantiateViewControllerWithIdentifier("StepOne") as! StepOne
}
func getStepTwo() -> StepTwo {
return storyboard!.instantiateViewControllerWithIdentifier("StepTwo") as! StepTwo
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if viewController.isKindOfClass(StepTwo) {
// 2 -> 1
return getStepOne()
} else if viewController.isKindOfClass(StepOne) {
// 1 -> 0
return getStepZero()
} else {
// 0 -> end of the road
return nil
}
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if viewController.isKindOfClass(StepZero) {
// 0 -> 1
return getStepOne()
} else if viewController.isKindOfClass(StepOne) {
// 1 -> 2
return getStepTwo()
} else {
// 2 -> end of the road
return nil
}
}
// Enables pagination dots
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
return 3
}
// This only gets called once, when setViewControllers is called
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return selectedIndex
}
}
让我们在Storyboard中说你有三个viewControllers,你应该从身份检查器为StepZero StepOne StepTwo设置它们的标识符,例如当你实例化它们时:
func getStepZero() -> StepZero {
return storyboard!.instantiateViewControllerWithIdentifier("StepZero") as! StepZero
}
func getStepOne() -> StepOne {
return storyboard!.instantiateViewControllerWithIdentifier("StepOne") as! StepOne
}
func getStepTwo() -> StepTwo {
return storyboard!.instantiateViewControllerWithIdentifier("StepTwo") as! StepTwo
}
所选索引是您要开始的索引,编号为1.并且从getStepOne()
中的第二个视图控制器调用setViewControllers
开始。如果您想从视图控制器3开始,请使用选定的索引2并调用getStepTwo()
...等
下载更新的示例:https://mega.nz/#!EQEFhbwS!0yoy5RvAliQNnjRevWo05wPWk7P08e8DVetRZdjg-ro
答案 1 :(得分:0)
您可以通过导航控制器连接视图控制器。只需选择一个视图控制器 - >编辑(在mac的顶部栏) - >嵌入 - >导航控制器。
此外,如果要滑动,可以使用滚动视图,仅在视图控制器上使用。内容大小为3的视图控制器的滚动视图可以帮助您执行相同操作。 谢谢
答案 2 :(得分:0)