Swift PageViewController在视图之间共享数据

时间:2015-07-11 01:01:17

标签: iphone swift model-view-controller

我正在构建一个像RunKeeper(http://www.raywenderlich.com/73984/make-app-like-runkeeper-part-1)这样的应用程序。请原谅我,如果我使用不正确的语言描述我正在尝试做什么,因为我正在快速学习,并且是iPhone开发的新手: - )。

我打算使用带有3页的UIPageViewController。在第一页上,我想显示运行计时器,开始,暂停,完成,圈数等按钮。一旦计时器运行,当用户按下第一页上的“Lap”按钮时,我希望将膝部日志信息显示在第二页的表格中。除非用户滑动页面,否则系统不应切换页面。第三页应该是带GPS的地图。我想从gps(第三页)获取信息,并对该数据执行一些处理,并在第二页上显示结果。

我的问题是,如何在不将页面更改为第二页的情况下,将该信息从第一页和第三页分享或传递到第二页?注意:当数据从第一页,第三页到第二页时,应用程序不应切换页面。它应该只在用户滑动时切换页面。第二个问题是,一旦数据可用于第二个控制器,我可以在页面仍在第一页或第三页时执行功能吗?

我尝试过使用segue,但是当调用prepareForSegue时,app会从第一页,第三页切换到第二页。我也尝试过使用全局数据(只是为了让它运行起来),但是当我滑到第二页时数据没有更新。

如果我需要更清楚地解释一下,请告诉我。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我开始讨论在Swift中可以在视图控制器之间共享数据的各种方法:

How do you share data between view controllers and other objects in Swift?

在您的情况下,数据容器单例可能是一个不错的选择。您需要在viewWillAppear方法中添加代码,该方法从单例中获取新值并显示它们,以便在用户滑动到其他视图控制器之一时,视图控制器显示最新数据。