iPhone编码:如何在ViewController中设置变量?
我有一个选项卡栏应用程序,在一个选项卡视图(FirstView.xib和FirstViewController.h/.m)上有一个MKMapView,在另一个选项卡视图(SecondView.xib)上有一个带标签的普通视图 我在FirstViewController中运行并更新了一个活动的CoreLocation。我还需要SecondView中的CoreLocation变量。它必须在SecondView.xib上显示速度、高度、纬度/经度 我必须如何处理这个问题?我是否也应该为SecondView设置一个ViewController?也许还有另一个CoreLocation的例子?还是从FirstViewController中更新secondview的标签更好?(我不知道如何实现第二个选项,即从一个控制器控制两个xib。)iPhone编码:如何在ViewController中设置变量?,iphone,cocoa-touch,ios,global,Iphone,Cocoa Touch,Ios,Global,我有一个选项卡栏应用程序,在一个选项卡视图(FirstView.xib和FirstViewController.h/.m)上有一个MKMapView,在另一个选项卡视图(SecondView.xib)上有一个带标签的普通视图 我在FirstViewController中运行并更新了一个活动的CoreLocation。我还需要SecondView中的CoreLocation变量。它必须在SecondView.xib上显示速度、高度、纬度/经度 我必须如何处理这个问题?我是否也应该为SecondVi
提前谢谢 您应该尝试将You
CLLocation
管理器放在选项卡视图控制器中。然后,当它更新时,它遍历选项卡视图,查看它们是否响应您指定的位置更新方法。这样,它可以处理1、2、…n个需要位置信息的视图
在选项卡视图控制器中:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
for (UIViewController *thisTabView in tabBarController.viewControllers) {
NSLog(@"thisTabView: %@", [thisTabView description]);
if ([thisTabView respondsToSelector:@selector(locationManager:didUpdateToLocation:fromLocation:)]) {
NSLog(@"thisTabView: calling locationManager:didUpdateToLocation:fromLocation:");
[thisTabView locationManager:manager didUpdateToLocation:newLocation fromLocation:oldLocation];
}
}
}
您应该尝试将You
CLLocation
管理器放在选项卡视图控制器中。然后,当它更新时,它遍历选项卡视图,查看它们是否响应您指定的位置更新方法。这样,它可以处理1、2、…n个需要位置信息的视图
在选项卡视图控制器中:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
for (UIViewController *thisTabView in tabBarController.viewControllers) {
NSLog(@"thisTabView: %@", [thisTabView description]);
if ([thisTabView respondsToSelector:@selector(locationManager:didUpdateToLocation:fromLocation:)]) {
NSLog(@"thisTabView: calling locationManager:didUpdateToLocation:fromLocation:");
[thisTabView locationManager:manager didUpdateToLocation:newLocation fromLocation:oldLocation];
}
}
}
所有ViewController都可以访问appdelegate,因此使用它来存储变量并将其传递回更新标签,等等
MyAppDelegate*委托=(MyAppDelegate*)[[UIApplication sharedApplication]委托];
然后你可以用它来指向你的字符串,使用
delegate.someString=blah blah代码>您的所有ViewController都可以访问appdelegate,因此使用它来存储变量并将其传递回更新标签等
MyAppDelegate*委托=(MyAppDelegate*)[[UIApplication sharedApplication]委托];
然后你可以用它来指向你的字符串,使用delegate.someString=blah blah代码>此方法似乎只调用一个(第一个)ViewController?我在两个控制器中都有相同的方法,每个控制器都有自己的NSLog()调用。控制台中只打印一个。有什么建议吗?谢谢这个方法似乎只调用一个(第一个)ViewController?我在两个控制器中都有相同的方法,每个控制器都有自己的NSLog()调用。控制台中只打印一个。有什么建议吗?非常感谢。