2012-03-21 14 views
0

In ViewController 1私は、UILabelのテキストを変更するViewController 2にある関数 "changeButtonMessage"を呼び出しています。関数が呼び出されています(NSLogは機能します)が、ラベルは変更されていません。助けてくれてありがとう。別のView Controllerで関数を呼び出す

のViewController 1

loadingViewController *controller; 
controller = [[loadingViewController alloc] init]; 
NSString *mymsg = [NSString stringWithFormat: @"Loading"]; 
[controller changeButtonMessage:mymsg]; 

のViewController 2

@property (nonatomic, retain) IBOutlet UILabel *loadingtxt; 
- (IBAction)changeButtonMessage:(id)sender; 

@synthesize loadingtxt; 

-(void)changeButtonMessage: (NSString*) newMessage { 

    loadingtxt.text = newMessage; 
    NSLog(@"Change label to %@",newMessage); 

} 

答えて

0

UIViewController.viewプロパティがまだアクセスされていない場合は、オブジェクト(ALLOC、INIT)が、ビュー、実際にISNを作成しました読み込まれておらず、サブビューがロードされていません。

loadingtxtはおそらくゼロです。それをデバッグするかNSLogで確認することができます。 loadViewメソッドまたはのviewDidLoadはあなたのビューコントローラを作成するにはどうすればよいのUIViewController

に呼ばれてきたまでは有効になりません

?ストーリーボード? Nibファイル?

+0

ご返信ありがとうございます。 View ControllerはViewController1のViewDidLoadでModalViewController 'loadingViewController * loadingView = [[[loadingViewController alloc] init] autorelease]として作成されます。 loadingView.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController:loadingView animated:NO]; ' – user1104325

+0

あなたのビューコントローラでのビューの作成方法は?関連するnibファイルがある場合は、initWithNibName initメソッドを使用する必要があるかもしれません...もう一度デバッグして、txtのロードがnilであるかどうかチェックしましたか? – bandejapaisa

関連する問題