如何在使用 UIpageviewcontroller 导航页面时从另一个 viewcontroller 自动更新 viewcontroller 上的标签
How to automatically update a label on a viewcontroller from another viewcontroller while using a UIpageviewcontroller to navigate pages
我目前正在使用 UIPageviewcontroller 在我的 3 个主要视图控制器之间导航。我有一个全局变量,我使用步进器在第一页上设置了它。然后将该全局变量的值用作第二页标签的值。
这可行,但它需要第二页上的一个按钮来更新标签。例外情况是当我首先 运行 应用程序并在滑动到第二页之前更改第一页上的步进器时 - 因为我在“override func viewdidload()”
中更新了标签
我不想使用按钮来更新第 2 页上的标签。我希望能够滑动到第 1 页,更改步进器,然后当我滑动回到第 2 页时,第 2 页上的标签是自动更新。 (反复)
我该怎么做?
有没有办法杀死 UIpageviewcontroller 中的视图控制器?或者有没有办法在我每次滑动到页面时让“覆盖有趣的 viewdidload()”功能 运行?
执行此操作的简单方法是在 viewWillAppear 方法中更新第 2 页上的标签。每次返回第 2 页视图控制器时都会调用它。
然而,全局变量并不是设置数据处理的好方法。
您最好将页面 2 的视图控制器设为第一个视图控制器的委托。当用户更改第一个视图控制器上的步进器时,它可以在其委托上调用“valueChanged()` 方法。
您应该仔细阅读委托设计模式以了解如何执行此操作。它有很好的文档记录,是您在 iOS 开发中最常见的模式之一。
我目前正在使用 UIPageviewcontroller 在我的 3 个主要视图控制器之间导航。我有一个全局变量,我使用步进器在第一页上设置了它。然后将该全局变量的值用作第二页标签的值。
这可行,但它需要第二页上的一个按钮来更新标签。例外情况是当我首先 运行 应用程序并在滑动到第二页之前更改第一页上的步进器时 - 因为我在“override func viewdidload()”
中更新了标签我不想使用按钮来更新第 2 页上的标签。我希望能够滑动到第 1 页,更改步进器,然后当我滑动回到第 2 页时,第 2 页上的标签是自动更新。 (反复)
我该怎么做?
有没有办法杀死 UIpageviewcontroller 中的视图控制器?或者有没有办法在我每次滑动到页面时让“覆盖有趣的 viewdidload()”功能 运行?
执行此操作的简单方法是在 viewWillAppear 方法中更新第 2 页上的标签。每次返回第 2 页视图控制器时都会调用它。
然而,全局变量并不是设置数据处理的好方法。
您最好将页面 2 的视图控制器设为第一个视图控制器的委托。当用户更改第一个视图控制器上的步进器时,它可以在其委托上调用“valueChanged()` 方法。
您应该仔细阅读委托设计模式以了解如何执行此操作。它有很好的文档记录,是您在 iOS 开发中最常见的模式之一。