更新控制器中的位置,而位置管理器在其他控制器中初始化
Posted
技术标签:
【中文标题】更新控制器中的位置,而位置管理器在其他控制器中初始化【英文标题】:updating location in a controller while location manager initialized in other controller 【发布时间】:2009-10-22 11:14:10 【问题描述】:我有一个导航堆栈。 在 rootView 中,我初始化了位置管理器,并设置了适当的委托方法。 然后我推送一个通过当前检索到的位置的视图。 一切正常
另一方面,如果我在位置仍在加载时推送视图,则不会自动发送最终更好坐标的位置,并且需要弹出和重新推送推送的视图。如何在不再次弹出推送的情况下检索上传的坐标?
【问题讨论】:
【参考方案1】:您可以在每个需要更新的控制器中添加-updateWithLocation:
之类的方法,然后在您的位置管理器委托中调用它(对于当前位于顶部的控制器)。
如果您使用 UINavigationController,您可以使用其 topViewController 属性轻松访问您的***控制器。
【讨论】:
也许我还可以问:从一方面来说,我必须在每个控制器中添加一个 -updateWithLocation :如果我没有检查 topViewController 是否是有效需要更新的控制器。有没有比 if 检查更简单的方法?从另一个(我为我的无知道歉)我收到一个警告,因为 xcode 不知道 topViewController 是否真正实现了该方法(不是问题,但我不喜欢警告) 我确实通过以下方式检查: if ([topController respondsToSelector:@selector(updateWithLocation:)]) [topController performSelector:@selector(updateWithLocation:) withObject:newLocation]; performSelector 调用不会生成编译器警告 再次感谢!!我使用 isKindOfClass 来检查控制器,但这要好得多。我是这个行业的新手,但我仍然不习惯以正确的方式思考。谢谢!以上是关于更新控制器中的位置,而位置管理器在其他控制器中初始化的主要内容,如果未能解决你的问题,请参考以下文章