iphone - 如何停止来自另一个类/ View 的位置更新?

标签 iphone objective-c ios

我目前正在构建一个应用程序,允许用户跟踪他们进行的各种“旅行”。

该应用程序由两个 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/

相关文章:

ios - iOS 64 位模拟器上的 va_list 类型

iphone - scrollToRowAtIndexPath :atScrollPosition:animated scrolling too slow

ios - 是否有一种简单的方法来检查是否存在传递给 NSString 上的 substringWithRange 的 NSRange(这样不会导致错误)?

javascript - 如何在iPhone中以HTML iframe自动播放youTube Video

ios - NSTimeInterval 并查看日期是否超过一个小时

objective-c - UITableView dataSource 必须从 tableView :cellForRowAtIndexPath error 返回一个单元格

iphone - 执行转换后 "invalid frame"到底意味着什么?

ios - 如何添加背景音乐

ios - 向 ios 应用程序添加永久 NSDictionary

ios - 将文件从 bundle 复制到 Libraries 文件夹(IOS 10、Swift 3、xcode 8.2)