首页 > 解决方案 > 如何在使用 UIpageviewcontroller 导航页面时从另一个视图控制器自动更新视图控制器上的标签

问题描述

我目前正在使用 UIPageviewcontroller 在我的 3 个主要视图控制器之间导航。我有一个使用步进器在第一页上设置的全局变量。然后将该全局变量的值用作第二页上标签的值。

这可行,但它需要第二页上的按钮来更新标签。例外情况是当我第一次运行应用程序并在滑动到第二页之前更改第一页上的步进器时 - 因为我在“覆盖 func viewdidload()”中更新了标签

我不想使用按钮来更新第 2 页上的标签。我希望能够滑动到第 1 页,更改步进器,然后当我滑回第 2 页时,第 2 页上的标签会自动更新。(反复)

我该怎么做呢?

有没有办法杀死 UIpageviewcontroller 中的视图控制器?或者有没有办法让“override fun viewdidload()”函数在我每次滑动到页面时运行?

标签: iosswiftdelegatesuipageviewcontrollerviewdidload

解决方案


执行此操作的简单方法是在其 viewWillAppear 方法中更新第 2 页上的标签。每次返回第 2 页视图控制器时都会调用它。

然而,全局变量并不是设置数据处理的好方法。

您最好将第 2 页的视图控制器作为第一个视图控制器的委托。当用户在第一个视图控制器上更改步进器时,它可以在其委托上调用“valueChanged()”方法。

您应该阅读委托设计模式以了解如何执行此操作。它有很好的文档记录,是 iOS 开发中最常见的模式之一。


推荐阅读