在另一个类中设置标签文本

时间:2012-02-17 16:38:05

标签: iphone ios uiviewcontroller uilabel

在我的视图控制器中, 我在这里创建一个标签。

在另一个viewcontroller中,我正在创建第一个视图控制器的实例。在这里,我尝试设置标签的text属性。但它不起作用。我一遍又一遍地检查我的代码,找不到任何遗漏的东西。 我尝试以编程方式创建标签以及使用界面构建器。仍然无法设置标签的文本属性。有什么理由吗?

我在

中创建标签
- (void)viewDidLoad
{
myLabel = [[UILabel alloc]init];
[myLabel setText:@"Hi"];
[myLabel1 setText:@"Hello"];
 [myLabel setFrame:CGRectMake(105, 130, 120, 30)];
 [myLabel setBackgroundColor:[UIColor clearColor]];
 [myLabel setTextColor:[UIColor whiteColor]];
 [myLabel setTextAlignment:UITextAlignmentCenter];
 [myLabel setAdjustsFontSizeToFitWidth:YES];
 [self.view addSubview:myLabel];
 [myLabel release];
}

在我的第一个视图控制器

MySecondViewcontroller *showMyViewcontroller = [[ MySecondViewcontroller    alloc]initWithNibName:@"MySecondViewcontroller" bundle:nil];;
showMyViewcontroller.myLabel = @"I cant set the text";
[self.navigationcontroller pushViewController: showMyViewcontroller animated:YES];
[showMyViewcontroller release];

我在这里做错了什么

2 个答案:

答案 0 :(得分:2)

尝试使用中间字符串来执行此操作,如下所示:

在FirstViewController中:

- (void)loadNextView {
    // load your view
    SecondViewController *vc = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];

    // set a string in your second view (NOT a label)
    vc.myString = @"Some String";

    // push it or whatever
    [self.navigaitonController pushViewController:vc animated:YES];
    [vc release];
}

在SecondViewController.h中

@interface SecondViewController : UIViewController {
    UILabel *myLabel;
    NSString *myString;
}

@property (nonatomic, retain) UILabel *myLabel;
@property (nonatomic, retain) NSString *myString;

在SecondViewController.m中

- (void)viewDidLoad {
    // view is now loaded, so we can set the label:
    myLabel.text = myString;
}

答案 1 :(得分:0)

您尝试将字符串分配给UILabel,您需要将字符串分配给myLabel.text。此外,您必须确保UILabel可以访问,因此请确保它是属性。