如何在使用UIpageviewcontroller导航页面时如何从另一个ViewController自动更新ViewController上的标签

问题描述

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

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

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

我该怎么做?

是否有办法杀死UIpageviewcontroller中的视图控制器?还是有办法让我每次滑动到页面时都运行“ override fun viewdidload()”功能

解决方法

执行此操作的简单方法是在其viewWillAppear方法的第2页上更新标签。每当您返回第2页的视图控制器时,该调用就会被调用。

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

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

您应该阅读委托设计模式以弄清楚该如何做。它的文档非常丰富,是您在iOS开发中最常见的模式之一。