【发布时间】:2011-04-20 17:13:53
【问题描述】:
我正在尝试访问存储在数组中的对象(人的名字)的属性,并将其分配给单独的视图控制器 (SplitMethodViewController) 中的标签。名称值在此处成功分配。代码 sn-p 如下:
在初始视图控制器中(在显示包含 UILabel 的模态视图控制器之前):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int row = [indexPath row];
Person *thisPerson = (Person *)[self.personArray objectAtIndex:row];
SplitMethodViewController *smvc = [[SplitMethodViewController alloc]initWithNibName:nil bundle:nil];
smvc.nameLabel.text = [[NSString alloc] initWithFormat:@"%@", thisPerson.firstName];
//This lines returns the value I want, showing that assignment is working till this point
NSLog(@"The name label is %@", smvc.nameLabel.text);
[self presentModalViewController:smvc animated:YES];
[smvc release];
}
但是,当我签入 splitMethodViewController(签入 ViewDidLoad 方法)时,这些值变为空白
@interface SplitMethodViewController : UIViewController
{
UILabel *nameLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *nameLabel;
@end
@implementation SplitMethodViewController
@synthesize nameLabel;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
self.nameLabel = [[UILabel alloc] init];
}
return self;
}
- (id)init
{
return [self initWithNibName:nil bundle:nil];
}
- (void)viewDidLoad
{
//name label returning nothing here.
NSLog(@"namelabel is %@",self.nameLabel.text);
[super viewDidLoad];
}
@end
我确定我在某个地方犯了一些愚蠢的错误。我试过删除所有的网点和标签,然后只重新创建一个名称标签和网点。但我仍然遇到同样的问题。
任何帮助将不胜感激!
【问题讨论】:
标签: objective-c uilabel variable-assignment