Ios 两个视图之间的Swift和页面视图控制器
在我的swift iOS应用程序中,我会创建一个带有两个视图的故事板。我想使用页面视图控制器元素,这样,通过左/右滑动,用户可以更改实际视图。我该怎么做 重要!我在网上搜索了好几次教程。我只找到了允许在同一图像视图中更改图像的模式。我不想在同一视图中更改同一图像中的图像;我想改变整个视图。我附上一张图片,以便更好地解释Ios 两个视图之间的Swift和页面视图控制器,ios,swift,view,swipe,Ios,Swift,View,Swipe,在我的swift iOS应用程序中,我会创建一个带有两个视图的故事板。我想使用页面视图控制器元素,这样,通过左/右滑动,用户可以更改实际视图。我该怎么做 重要!我在网上搜索了好几次教程。我只找到了允许在同一图像视图中更改图像的模式。我不想在同一视图中更改同一图像中的图像;我想改变整个视图。我附上一张图片,以便更好地解释 提前感谢]这说明了如何使用故事板创建分页视图控制器: 将UIPageViewController拖动到情节提要中,并将其标记为初始视图控制器 然后创建一个新的UIPageView
提前感谢]这说明了如何使用故事板创建分页视图控制器:
UIPageViewController
子类-比如调用它TutorialPageViewController
,并将其分配给刚才拖到情节提要中的对象情节提要ID
,例如RedViewController
&GreenViewController
class TutorialPageViewController: UIPageViewController, UIPageViewControllerDataSource {
private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newColoredViewController("RedViewController"),
self.newColoredViewController("GreenViewController")]
}()
private func newColoredViewController(color: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewControllerWithIdentifier("\(color)ViewController")
}
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self
if let firstViewController = orderedViewControllers.first {
setViewControllers([firstViewController],
direction: .Forward,
animated: true,
completion: nil)
}
}
func pageViewController(pageViewController: UIPageViewController,
viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
return nil
}
let previousIndex = viewControllerIndex - 1
guard previousIndex >= 0 else {
return nil
}
guard orderedViewControllers.count > previousIndex else {
return nil
}
return orderedViewControllers[previousIndex]
}
func pageViewController(pageViewController: UIPageViewController,
viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
return nil
}
let nextIndex = viewControllerIndex + 1
let orderedViewControllersCount = orderedViewControllers.count
guard orderedViewControllersCount != nextIndex else {
return nil
}
guard orderedViewControllersCount > nextIndex else {
return nil
}
return orderedViewControllers[nextIndex]
}
}
请参阅本文以了解更多详细信息和有关此的教程
更新:页面点
阅读第2部分文章第7点,该部分介绍如何添加UIPageControl并更改滑动上的点:
这说明了如何使用情节提要创建分页视图控制器:
UIPageViewController
子类-比如调用它TutorialPageViewController
,并将其分配给刚才拖到情节提要中的对象情节提要ID
,例如RedViewController
&GreenViewController
class TutorialPageViewController: UIPageViewController, UIPageViewControllerDataSource {
private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newColoredViewController("RedViewController"),
self.newColoredViewController("GreenViewController")]
}()
private func newColoredViewController(color: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewControllerWithIdentifier("\(color)ViewController")
}
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self
if let firstViewController = orderedViewControllers.first {
setViewControllers([firstViewController],
direction: .Forward,
animated: true,
completion: nil)
}
}
func pageViewController(pageViewController: UIPageViewController,
viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
return nil
}
let previousIndex = viewControllerIndex - 1
guard previousIndex >= 0 else {
return nil
}
guard orderedViewControllers.count > previousIndex else {
return nil
}
return orderedViewControllers[previousIndex]
}
func pageViewController(pageViewController: UIPageViewController,
viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
return nil
}
let nextIndex = viewControllerIndex + 1
let orderedViewControllersCount = orderedViewControllers.count
guard orderedViewControllersCount != nextIndex else {
return nil
}
guard orderedViewControllersCount > nextIndex else {
return nil
}
return orderedViewControllers[nextIndex]
}
}
请参阅本文以了解更多详细信息和有关此的教程
更新:页面点
阅读第2部分文章第7点,该部分介绍如何添加UIPageControl并更改滑动上的点:
你看过我的答案了吗?运气好吗?谢谢!我已经测试过了,但我看不到底部有代表页面的点。如何显示点栏?全部解决!感谢你看过我的答案了吗?运气好吗?谢谢!我已经测试过了,但我看不到底部有代表页面的点。如何显示点栏?全部解决!感谢