ios - 如何在使用 UIpageviewcontroller 导航页面时从另一个视图控制器自动更新视图控制器上的标签
问题描述
我目前正在使用 UIPageviewcontroller 在我的 3 个主要视图控制器之间导航。我有一个使用步进器在第一页上设置的全局变量。然后将该全局变量的值用作第二页上标签的值。
这可行,但它需要第二页上的按钮来更新标签。例外情况是当我第一次运行应用程序并在滑动到第二页之前更改第一页上的步进器时 - 因为我在“覆盖 func viewdidload()”中更新了标签
我不想使用按钮来更新第 2 页上的标签。我希望能够滑动到第 1 页,更改步进器,然后当我滑回第 2 页时,第 2 页上的标签会自动更新。(反复)
我该怎么做呢?
有没有办法杀死 UIpageviewcontroller 中的视图控制器?或者有没有办法让“override fun viewdidload()”函数在我每次滑动到页面时运行?
解决方案
执行此操作的简单方法是在其 viewWillAppear 方法中更新第 2 页上的标签。每次返回第 2 页视图控制器时都会调用它。
然而,全局变量并不是设置数据处理的好方法。
您最好将第 2 页的视图控制器作为第一个视图控制器的委托。当用户在第一个视图控制器上更改步进器时,它可以在其委托上调用“valueChanged()”方法。
您应该阅读委托设计模式以了解如何执行此操作。它有很好的文档记录,是 iOS 开发中最常见的模式之一。
推荐阅读
- javascript - 从 _.map() 返回唯一值
- jquery - 如何手动将 K-Dirty 添加到 Kendo Edit Grid
- python - 使用 Ubuntu 18 不显示 QPixmap
- c# - 考虑到内部/反向/协方差,这是不可能的吗?
- material-ui - Google Maps 上的多个 Poppers 仅显示当前的 OnClick
- python - 从簇中返回面积最大的圆
- php - 当 SUM 用于特定条件时,如何避免 FOREACH 块中的 MySQL 查询?
- python-2.7 - 与另一个夹具一起使用时找不到 PyTest 夹具
- python-3.x - 是否可以将字符串列表保存到 CSV 并再次将其作为(字符串)列表读取?
- php - 从 Laravel 访问 LDAP SSO 用户名