java向前引用和向后引用是啥概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java向前引用和向后引用是啥概念相关的知识,希望对你有一定的参考价值。
所谓向前引用,就是在定义类、接口、方法、变量之前使用它们。反之,向后引用就是我们正常的写法。 参考技术A 在java实现某个功能的时候,会将类实例化成对象,然后jvm再对实例化后的对象进行操作。 实例化后的对象可以赋值,也可以引用。赋值时,java会开辟一个新的地址用于存放变量,而引用则不开辟地址。 String a = "a"; String b = "a"; 将String类实...追问
没说完呢
如何使用按钮在 UIPageViewController 中向前和向后导航?
【中文标题】如何使用按钮在 UIPageViewController 中向前和向后导航?【英文标题】:How do I navigate forward and backward within UIPageViewController using buttons? 【发布时间】:2017-12-22 19:51:46 【问题描述】:我正在为一家物理治疗诊所的新患者创建一个入职应用程序。新患者将在UIPageViewController
内的每个视图控制器上回答问题,然后点击按钮转到下一个问题。
我按照教程设置了我的 UIPageViewController
PageVC
以及 3 个视图控制器。 PageVC
当前通过滑动更改页面,但我希望能够使用两个按钮在视图控制器中向后和向前导航,这些按钮是 PageVC
本身的子视图。我该如何做到这一点?
我喜欢使用UIPageViewController
并想进一步了解它。如果除了使用UIPageViewController
之外还有更有效的方法来完成同样的任务,我很乐意考虑。
class PageVC: UIPageViewController, UIPageViewControllerDataSource
private(set) lazy var orderedViewControllers: [UIViewController] =
return [self.VCInstance(name: "BodyChart"),
self.VCInstance(name: "Symptoms"),
self.VCInstance(name: "HadSurgery")]
()
private func VCInstance(name: String) -> UIViewController
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewController(withIdentifier: name)
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
guard let viewControllerIndex = orderedViewControllers.index(of: 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, viewControllerAfter viewController: UIViewController) -> UIViewController?
guard let viewControllerIndex = orderedViewControllers.index(of: 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]
override func viewDidLoad()
super.viewDidLoad()
dataSource = self
if let firstViewController = orderedViewControllers.first
setViewControllers([firstViewController], direction: .forward, animated: true, completion: nil)
【问题讨论】:
可能重复:link 【参考方案1】:我想你要找的是here. 但这是另一种方式。
UIPageViewController 有一个实例方法转换。下面的sn-p会从第一页子视图控制器移动到第二页。
pageViewController.transition(from: pageViewController.viewControllers[0], to: pageViewController.viewControllers[1], duration: 0.3, options: UIViewAnimationOptions.curveEaseInOut, animations: nil, completion: nil)
PageVC 目前通过滑动来更改页面,但我希望能够使用两个按钮在视图控制器中前后导航
将您的按钮添加到页面内容,然后禁用horizontal scrolling on PageVC's scrollview 或以有礼貌的方式禁用视图的用户交互。
【讨论】:
以上是关于java向前引用和向后引用是啥概念的主要内容,如果未能解决你的问题,请参考以下文章