我目前正在构建一个应用程序,允许用户跟踪他们进行的各种“旅行”。
该应用程序由两个 View 组成。第一个 View 由 2 个按钮组成,允许用户开始和停止当前的“行程”。
按开始按钮会进入第二个 View ,该 View 实质上在 map 上显示当前行程。
我遇到的问题是停止旅行。当用户希望停止旅行时,他们只需在第一个 View 中点击停止按钮即可。我想停止位置更新,因为不再需要它们。
问题是位置管理器位于第二个 View 内,因此我无法从第一个 View 调用 stopLocationUpdates 方法。
我尝试过的: 我设置了一个 NSNotification 来告诉第二个 View 停止位置更新。问题是,只有在再次加载第二个 View 时才会调用此方法。这是没有用的,因为在停止旅程时,第二个 View 将永远不会加载(直到另一个旅程开始)。
在此先感谢您的帮助。
最佳答案
首先,NSNotification
完全不知道 View Controller 的状态。因此,如果它开始仅在加载时监听,则可能是因为您开始监听加载时的通知。您也可以在指定的初始化程序中执行此操作,这可能会解决您的问题。
但是,也许您想重新考虑一起删除 View Controller ?如果根本不使用它,那么为什么首先将它保留在内存中呢?您可以简单地释放它。
关于iphone - 如何停止来自另一个类/ View 的位置更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9575393/