2011-09-09 11 views
0

ちょっと私はUILabelとUIButtonを別のボタンの中にプログラム的に作成していますので、このボタンを押すとUILabelとUIButtonが作成され、別ページに追加されます。私はボタンがラベル値に1を加えることができるようにしたい。ここでは2番目のビューにラベルを追加するボタンのコードです:UILabelのテキストは変更されません

-(IBAction)outlet1:(id)sender{ 
UIButton *addButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[addButton addTarget:self action:@selector(addButton1:)  
forControlEvents:UIControlEventTouchUpInside]; 
[addButton setTitle:@"+" forState:UIControlStateNormal]; 
addButton.frame = CGRectMake(80.0, 210.0, 35, 40.0); 
[cart.view addSubview:addButton]; 

UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(137, 150, 25, 35)]; 
label.backgroundColor = [UIColor clearColor]; 
label.text = @"1"; 
[cart.view addSubview:label]; 
} 

が、これは私がラベルを変更できるようにしたいボタンです:

- (void)addButton1:(id)sender { 
[black.label setText:[NSString stringWithFormat:@"%d",[black.label.text intValue] +1]];  
} 

black IVARであること最初のviewControllerに関連付けられており、cartは、2番目のviewControllerでアサーションされています!私の問題は、addButton1:メソッドでフックされたボタンを押したときにクラッシュしますか?助けを前にありがとう!

+0

スタックトレースで取得したクラッシュメッセージを教えてください。 – Madhu

答えて

1

あなたは、あなたはあなたの@implementation全体にアクセスすることができ、あなたのUILabelviewDidLoadにinitとそれにIVARを作成する必要があります。

@synthesize label; 

- (void) viewDidLoad 
{ 
    label = [[UILabel alloc] initWithFrame:CGRectMake(137, 150, 25, 35)]; 
} 
+0

私はこれを試してみました。私は2番目のviewConrollerの 'viewDidLoad'でラベルを初期化しようとしましたが、今は表示されませんか?私は最初のVCでivarを作成しました。これを2番目のVCに表示したいので、どうすればこのことができますか? –

+0

まあ、ラベルの残りの部分、特に '[cart.view addSubview:addButton];を追加する必要があります。そうでなければ、ラベルを作成して何かに追加しません。 – WrightsCS

+0

私はボタンとラベルの両方でこれを行っていますか?私は質問にそれを加えたと信じています。助けてくれてありがとう! –

関連する問題