如在主题中所写,我找不到将CLLocation
数据从初始视图控制器传递到最后一个视图控制器的方法。
我的应用程序有一个4视图控制器(A-B-C-D)。
在初始视图控制器(A)中,我获得存储在CLLocation *currentLocation.
中的位置
D视图控制器必须根据存储在视图控制器A currentLocation
中的位置返回一个列表。
我如何得到它?
我尝试使用NotificationCenter但它不起作用。有人能帮助我吗?
答案 0 :(得分:2)
我很快就想到了3个解决方案:
正如codebad所说,我们需要更多细节以更好的方式帮助您:)
答案 1 :(得分:1)
一个选项是将CLLocation
值存储在第一个ViewController的AppDelegate
中,然后从最后一个ViewController中的AppDelegate
读取。
您可以这样编码:
AppDelegate.h
#define UIAppDelegate \
((AppDelegate *)[UIApplication sharedApplication].delegate)
@property CLLocation *gMyLocation;
ViewControllerA.m
#import "AppDelegate.h"
///
UIAppDelegate.gMyLocation = //calculated location value
ViewControllerD.m
#import "AppDelegate.h"
///
NSLog(@"%@", UIAppDelegate.gMyLocation)
希望它有所帮助..因为使用AppDelegates作为单身could be bad design habit.
,需要更多有关您的应用程序的信息才能实现更高级的实施答案 2 :(得分:0)
看一下这个单例LocationController。
https://github.com/hackerinheels/locationcontroller
有了这个,您只需拨打一个电话就可以到达任何地方。
CLLocation *currentLocation = [[LocationController sharedLocationInterface] getCurrentLocation];
确保通过调用
在appdelegate中初始化位置控制器[LocationController sharedLocationInterface]