【发布时间】:2011-07-29 09:40:07
【问题描述】:
我被困住了:(
在我的应用程序中,每次更新到新位置时,我都需要从 CLLocationManager 进行更新。我没有使用 XIB/NIB 文件,我编写的所有代码都是以编程方式完成的。到代码:
.h
@interface TestViewController : UIViewController
UILabel* theLabel;
@property (nonatomic, copy) UILabel* theLabel;
@end
.m
...
-(void)loadView{
....
UILabel* theLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0,0.0,320.0,20.0)];
theLabel.text = @"this is some text";
[self.view addSubView:theLabel];
[theLabel release]; // even if this gets moved to the dealloc method, it changes nothing...
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"Location: %@", [newLocation description]);
// THIS DOES NOTHING TO CHANGE TEXT FOR ME... HELP??
[self.view.theLabel setText:[NSString stringWithFormat: @"Your Location is: %@", [newLocation description]]];
// THIS DOES NOTHING EITHER ?!?!?!?
self.view.theLabel.text = [NSString stringWithFormat: @"Your Location is: %@", [newLocation description]];
}
...
有什么想法或帮助吗?
(这都是手工卡住的,所以如果看起来有点笨拙,请原谅我)如果需要,我可以提供更多信息。
【问题讨论】:
-
NSLog 是否显示正确的位置?
-
@Radek 我放到loadView里面,UILabel应该放到viewDidLoad里面吗?那是超越点吗?为什么这会使 UILabel 可变
-
在 UIViewController 中使用 loadView 以编程方式创建用户界面是可以的。但是你是对的,如果你想引用 IBOutlets,你会使用 viewDidLoad 方法来确保 XIB 已经加载并且所有的 outlet 都已经可用。
标签: iphone xcode ios uilabel settext