【问题标题】:updating location in a controller while location manager initialized in other controller更新控制器中的位置,而位置管理器在其他控制器中初始化
【发布时间】:2009-10-22 11:14:10
【问题描述】:

我有一个导航堆栈。 在 rootView 中,我初始化了位置管理器,并设置了适当的委托方法。 然后我推送一个通过当前检索到的位置的视图。 一切正常

另一方面,如果我在位置仍在加载时推送视图,则不会自动发送最终更好坐标的位置,并且需要弹出和重新推送推送的视图。如何在不再次弹出推送的情况下检索上传的坐标?

【问题讨论】:

    标签: iphone core-location


    【解决方案1】:

    您可以在每个需要更新的控制器中添加-updateWithLocation: 之类的方法,然后在您的位置管理器委托中调用它(对于当前位于顶部的控制器)。 如果您使用 UINavigationController,您可以使用其 topViewController 属性轻松访问您的顶级控制器。

    【讨论】:

    • 也许我还可以问:从一方面来说,我必须在每个控制器中添加一个 -updateWithLocation :如果我没有检查 topViewController 是否是有效需要更新的控制器。有没有比 if 检查更简单的方法?从另一个(我为我的无知道歉)我收到一个警告,因为 xcode 不知道 topViewController 是否真正实现了该方法(不是问题,但我不喜欢警告)
    • 我确实通过以下方式检查: if ([topController respondsToSelector:@selector(updateWithLocation:)]) [topController performSelector:@selector(updateWithLocation:) withObject:newLocation]; performSelector 调用不会生成编译器警告
    • 再次感谢!!我使用 isKindOfClass 来检查控制器,但这要好得多。我是这个行业的新手,但我仍然不习惯以正确的方式思考。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多