使用Class1中的NSString变量作为Class 2上的UILabel

时间:2012-03-13 02:42:12

标签: class nsstring instance

我遇到问题是一个非常基本的情况。 从今天早上开始,我一直在阅读相当多的内容,但无法将其付诸实践。

我正在从UIPicker中获取一个名称,并希望在另一个视图中展示此名称,基本上,使用另一个类中一个类的一个变量。

这是关于的主要声明 ViewController.h

@interface ViewController : UIViewController
{
    IBOutlet UIPickerView *pickerAlunos;
    NSMutableArray *arrayAlunos;
    NSString *alunoAtual;
}

- (IBAction)botaoSelecionado:(UIButton *)sender;
- (void)definaAluno:(NSString*)oNome;

@property (nonatomic, retain) IBOutlet UIPickerView *pickerAlunos;
@property (nonatomic, retain) NSMutableArray *arrayAlunos;
@property (nonatomic, retain) NSString *alunoAtual;

@end

并在ViewController.m上我使用definaAluno定义它:

- (void)definaAluno:(NSString*)oNome {
    oNome = self.alunoAtual;
}

- (IBAction)botaoSelecionado:(UIButton *)sender; {
    NSInteger linha = [pickerAlunos selectedRowInComponent:0];
    NSString *selecionado = [arrayAlunos objectAtIndex:linha];
    self.alunoAtual = selecionado;
}

所以,在另一个类ELTDDimensions.m中,我使用惰性声明来初始化它,但它返回null。

- (ViewController *)student {
    if(!student) {
        student = [[ViewController alloc] init];
    }
    return student;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.studentLabel.text = self.student.alunoAtual;        
}

并且最后一行获得空值。 studentLabel和student在ELTDimension.h上正确声明为

    ViewController *student;
    IBOutlet UILabel *studentLabel;

有人能帮助我吗?

0 个答案:

没有答案