2012-02-17 2 views
1

В моем диспетчере просмотра, Я создаю ярлык здесь.Настройка текста надписей в другом классе

В другом viewcontroller я создаю экземпляр первого контроллера представления. Здесь я попытался установить свойство text метки. Но это не сработает. Я проверил мой код снова и снова и не смог найти ничего, что не пропало. Я попытался создать метку как программно, так и используя построитель интерфейсов. Все еще не удалось установить свойство 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

Редактировать: myString.text только myString –

+0

@JeanPaulScott - да, вы правы, теперь отредактированы –

0

Вы пытаетесь присвоить строку в UILabel, вам нужно присвоить строку MyLabel .текст. Также вам нужно убедиться, что UILabel доступен, поэтому убедитесь, что это свойство.

Смежные вопросы